在bash命令中使用exit扩展for循环

时间:2014-03-26 23:29:53

标签: bash

我正在尝试在bash中运行多个循环。例如,有3种文件格式f1=*.txt f2=*.pngf3=*.jpg

我试图为每个命令提供三个不同的命令

for f1 in *.txt; do echo $f1; command 
exit 0

for f2 in *.png; do echo $f2; command
exit 0

for f3 in *.jpg; do echo $f3; command
exit 0 

但没有成功,我的语法坏了。我用&&替换了0号出口但没有成功。任何的想法?

2 个答案:

答案 0 :(得分:3)

bash中的循环以done终止,而不是exit

for f1 in *.txt; do  # loop starts here
  echo $f1
  command 
done                 # loop ends here

# or keep everything on the same line
for f2 in *.png; do echo $f2; command; done

您仍然可以使用exit完全退出脚本,但done是指示以forwhile开头的循环结束的预期方式,或until

其他shell构造有自己的终结符,如fi终止ifesac终止case

详细了解循环语法here

答案 1 :(得分:2)

您应该使用:

for file in *.txt; do echo $file; echo command $file; done
for file in *.png; do echo $file; echo command $file; done
for file in *.jpg; do echo $file; echo command $file; done

或该主题的变体。如果您愿意,可以使用f1f2f3