假设我在一个目录dir1中。在该目录中,我有myscript.sh和目录subdir1。 subdir1有几个子目录,subsub1,subsub2,subsub3。在每个子目录中都有一个名为script2.sh的bash脚本,我想运行它们中的每一个。
首先,我只是想确保我可以打印所有子目录。 我有:
for dir in /subdir1/*/ ; do
echo $dir
done
谁能告诉我我做错了什么?
答案 0 :(得分:1)
我猜你可以用这种方式运行它们:
find subdir1 -type f -name "NAME_OF_YOUR_SCRIPT.sh" -exec {} \;
答案 1 :(得分:0)
如果任何目录中的名称中包含空格或其他特殊字符,您将遇到问题。
根据您提供的内容
for scriptfile in ./subdir/*/*script2.sh
do
/bin/sh $scriptfile
done
可能最适合您。
要处理目录名中的空格或其他特殊字符,您将要使用find并将输出传递给xargs。