这是我的方案,我有一个名为A的根文件夹,其中包含具有n种可能性的文件夹B,C,D。这些文件夹中的每一个都有一个bash脚本。如何获取这些bash脚本并使用bash脚本运行它们。
sex = F
答案 0 :(得分:5)
使用find:
find . -name *.sh -type f -exec bash -c '[[ -x {} ]] || chmod u+x {}; {}' \;
找到的每个*.sh
:
答案 1 :(得分:3)
简单:)
eval "$(ls A/*/run.sh)"
ls将返回包含脚本路径的文件列表。 (你也可以使用find)
&#34>" "在$()周围将确保结果保持新行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"