if…then

类似于C/C++中的if/else语句

单层if

格式:

  1. if condition
  2. then
  3. 语句1
  4. 语句2
  5. ...
  6. fi

示例:

  1. a=3
  2. b=4
  3. if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]
  4. then
  5. echo ${a}在范围内
  6. fi

单层if…else

命令格式:

  1. if condition
  2. then
  3. 语句1
  4. 语句2
  5. ...
  6. else
  7. 语句1
  8. 语句2
  9. ...
  10. fi

示例:

  1. a=3
  2. b=4
  3. if ! [ "$a" -lt "$b" ]
  4. then
  5. echo ${a}不小于${b}
  6. else
  7. echo ${a}小于${b}
  8. fi

多层if-elif-elif-else

格式:

  1. if condition
  2. then
  3. 语句1
  4. 语句2
  5. ...
  6. elif condition
  7. then
  8. 语句1
  9. 语句2
  10. ...
  11. elif condition
  12. then
  13. 语句1
  14. 语句2
  15. else
  16. 语句1
  17. 语句2
  18. ...
  19. fi

示例:

  1. a=4
  2. if [ $a -eq 1 ]
  3. then
  4. echo ${a}等于1
  5. elif [ $a -eq 2 ]
  6. then
  7. echo ${a}等于2
  8. elif [ $a -eq 3 ]
  9. then
  10. echo ${a}等于3
  11. else
  12. echo 其他
  13. fi

case…esac

类似于C/C++中的switch语句。
格式:

  1. case $变量名称 in
  2. 1)
  3. 语句1
  4. 语句2
  5. ...
  6. ;; # 类似于C/C++中的break,不能省略
  7. 2)
  8. 语句1
  9. 语句2
  10. ...
  11. ;;
  12. *) # 类似于C/C++中的default
  13. 语句1
  14. 语句2
  15. ...
  16. ;; # 可以省略,但最好别
  17. esac

示例:

  1. a=4
  2. case $a in
  3. 1)
  4. echo ${a}等于1
  5. ;;
  6. 2)
  7. echo ${a}等于2
  8. ;;
  9. 3)
  10. echo ${a}等于3
  11. ;;
  12. *)
  13. echo 其他
  14. ;;
  15. esac