if then else fi

唯一要注意的是 else 不能出现空语句,如果存在这种情况,优化为:if then fi

for 循环

  1. # 一般格式
  2. for var in item1 item2 ... itemN
  3. do
  4. command1
  5. command2
  6. ...
  7. commandN
  8. done
  9. # 写成一行
  10. for var in item1 item2 ... itemN; do command1; command2 ... done;
  1. for loop in 1 2 3 4 5
  2. do
  3. echo "current loop value is : ${loop}"
  4. done
  5. for str in This is a string
  6. do
  7. echo $str
  8. done

while 循环

  1. # 如果int小于5,打印数值并加1
  2. int=1
  3. while(( $int<=5 ))
  4. do
  5. echo $int
  6. let "int++" # let 命令,用于执行一或多个表达式,变量计算中不需要加上$
  7. done
  8. # 从键盘读取信息,按<Ctrl-D>可退出循环
  9. echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'
  10. read SITE
  11. do
  12. echo "是的!$SITE 是一个好网站"
  13. echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'
  14. done
  15. echo "\n"

until 循环

  1. until condition
  2. do
  3. command
  4. done
  1. # until循环,如果条件返回false,则继续执行,直到条件为true时停止跳出循环。刚好跟while相反
  2. echo 'until loop demo:'
  3. n=0
  4. until [ $n -gt 10 ]
  5. do
  6. echo $n
  7. n=`expr $n + 1`
  8. done

case … esac

  1. case in
  2. 模式1)
  3. command
  4. ...
  5. ;;
  6. 模式2)
  7. command
  8. ...
  9. ;;
  10. esac
  1. echo '输入 1 到 4 之间的数字:'
  2. read n
  3. case $n in
  4. 1) echo '你选择了 1'; ;;
  5. 2) echo 'you input 2'; ;;
  6. 3) echo 'you input 3'; ;;
  7. 4) echo 'you input 4'; ;;
  8. *) echo 'you input out of 1~4'; ;;
  9. esac
  10. site="runoob"
  11. case "$site" in
  12. "runoob") echo "runoob.com"
  13. ;;
  14. "google": echo "google.com"
  15. ;;
  16. "taobao": echo 'taobao.com'
  17. ;;
  18. esac

break 和 continue

跟其他语言完全一样