我正在尝试在bash中运行多个循环。例如,有3种文件格式f1=*.txt
f2=*.png
和f3=*.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号出口但没有成功。任何的想法?
答案 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
是指示以for
,while
开头的循环结束的预期方式,或until
。
其他shell构造有自己的终结符,如fi
终止if
,esac
终止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
或该主题的变体。如果您愿意,可以使用f1
,f2
和f3
。