if then else fi
唯一要注意的是 else 不能出现空语句,如果存在这种情况,优化为:if then fi
for 循环
# 一般格式for var in item1 item2 ... itemNdocommand1command2...commandNdone# 写成一行for var in item1 item2 ... itemN; do command1; command2 ... done;
for loop in 1 2 3 4 5doecho "current loop value is : ${loop}"donefor str in This is a stringdoecho $strdone
while 循环
# 如果int小于5,打印数值并加1int=1while(( $int<=5 ))doecho $intlet "int++" # let 命令,用于执行一或多个表达式,变量计算中不需要加上$done# 从键盘读取信息,按<Ctrl-D>可退出循环echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'read SITEdoecho "是的!$SITE 是一个好网站"echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'doneecho "\n"
until 循环
until conditiondocommanddone
# until循环,如果条件返回false,则继续执行,直到条件为true时停止跳出循环。刚好跟while相反echo 'until loop demo:'n=0until [ $n -gt 10 ]doecho $nn=`expr $n + 1`done
case … esac
case 值 in模式1)command...;;模式2)command...;;esac
echo '输入 1 到 4 之间的数字:'read ncase $n in1) echo '你选择了 1'; ;;2) echo 'you input 2'; ;;3) echo 'you input 3'; ;;4) echo 'you input 4'; ;;*) echo 'you input out of 1~4'; ;;esacsite="runoob"case "$site" in"runoob") echo "runoob.com";;"google": echo "google.com";;"taobao": echo 'taobao.com';;esac
break 和 continue
跟其他语言完全一样
