Linux/Unix shell脚本 bash foreach循环示例
时间:2019-11-20 08:52:59 来源:igfitidea点击:
问题
在csh shell上可以使用foreach循环。
在Linux上运行的bash shell中如何使用foreach循环?
解决方案
C外壳(csh)或改进版本tcsh是1970年代后期的Unix外壳。 csh foreach循环语法如下:
foreach n ( 1 2 3 4 5 ) #command1 #command2 end
但是,bash缺少foreach语法。
只能使用bash while,for等循环替代。
Bash foreach循环示例
假设我们要转换以下csh forloop循环:
foreach i ( * ) echo "Working $i filename ..." end
在csh或tcsh foreach上方,使用循环显示了文件列表。
bash shell中的类似代码:
for i in * do echo "Working on $i file..." done
如果是处理文件,还可以使用find命令查找并安全地处理包含换行符,空格和特殊字符的文件名。
find /dir/ -print0 | xargs -r0 command find /tmp/test -print0 | xargs -I {} -r0 echo "Working on "{}" file ..." find /tmp/test -type f -print0 | xargs -I {} -r0 echo "Working on '{}' file ..."