for item in XXXX do XXXXX done
in XXXX如果省略则是从$@参数中读,也可以用``夹杂别的命令运行结果来用
也可以写for ((i=1; i<=10;i++))这种C风格的循环
while [ XXX ] do XXXXXX done
while改成until也可,则条件相反,其余相同
continue和break用法同c,但是break可以带数字参数,默认1为当层循环,可以通过2、3等跳出嵌套循环
还有一个很神奇的select循环,用于不停提示菜单选择,直到循环内部break跳出。结合$REPLY获取用户输入,$PS3设置提示信息
select option in XXXX1\ XXXX2\ XXXX3 do if [ ! -z "$option" ]; then echo "you chose option number $REPLY, which text is $option else echo "not valid" fi done
:或者/bin/true代表真,可以用来做死循环while :。注意shell里面,true是0,false是1。
read在能读到内容时返回0,所以也可以while read XXX