shell学习笔记(7)流程控制
1、if else
if condition then command1 command2 ... commandN fi
2、if else-if else
if condition1 then command1 elif condition2 then command2 else commandN fi
注:
- if else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt;
- 如果使用 ((...)) 作为判断语句,大于和小于可以直接使用 > 和 <。
3、for 循环
for var in item1 item2 ... itemN do command1 command2 ... commandN done
4、while
while condition do command done
5、until循环
until 循环执行一系列命令直至条件为 true 时停止。
until 循环与 while 循环在处理方式上刚好相反。
until condition do command done
6、case ... esac
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分支选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
case 工作方式如上所示,取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
7、循环控制
- break 命令允许跳出所有循环(终止执行后面的所有循环)。
- continue 命令与 break 命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
参考:Shell 流程控制 | 菜鸟教程 (runoob.com)