这是我的场景,我有一个名为A的根文件夹,其中包含具有n种可能性的文件夹B,C,D。这些文件夹中的每一个都有一个bash脚本。我如何获得这些bash脚本并使用bash脚本运行它们。Bash在所有目录中获取具有名称的特定文件并运行脚本
A/B/run.sh
A/C/run.sh
A/D/run.sh
这是我的场景,我有一个名为A的根文件夹,其中包含具有n种可能性的文件夹B,C,D。这些文件夹中的每一个都有一个bash脚本。我如何获得这些bash脚本并使用bash脚本运行它们。Bash在所有目录中获取具有名称的特定文件并运行脚本
A/B/run.sh
A/C/run.sh
A/D/run.sh
容易:)
eval "$(ls A/*/run.sh)"
LS将返回文件的列表,路径到脚本。 (你可以使用发现过)
的“”周围的$()将确保结果保持新线
EVAL将执行返回的行为脚本。
请注意,如果脚本和内容的名称中有空格,这可能是一个脆弱的解决方案。但是,如果它看起来像你所显示的,那应该很好。
这是一个示例输出:
~/ eval "$(ls */run.sh)"
I am running and my name is: one/run.sh
I am running and my name is: two/run.sh
的run.sh脚本是:
echo "I am running and my name is: $0"
谢谢按预期工作! – yetanotherposter
很高兴我可以帮助.. – Rob
@yetanotherposter:另一种解决方案更一般,你可以很容易地适应非标准的目录名称。 – sjsam
做他们需要的任何参数呢?订单是否重要? – Rob
订单无关紧要,它们不需要任何参数 – yetanotherposter
糟糕,您忘记发布您的代码! StackOverflow是关于帮助人们修复他们的代码。这不是免费的编码服务。任何代码都比没有代码更好。即使你不知道如何编写它,甚至元代码也会演示你如何看待程序应该起作用。 – ghoti