直接上代码:
#!/bin/bash # shell流程控制语句 # 流程控制语句 # if 语句语法格式: # if condition # then # command1 # command2 # ... # commandN # fi # 写成一行:if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi if [ $(ps -ef | grep -c "ssh") -gt 1 ] then echo "true" fi # if else 语法格式: # if condition # then # command1 # command2 # ... # commandN # else # command # fi num1=$[2*3] num2=$[1+4] if test $[num1] -eq $[num2] then echo "两个数字相等" else echo "两个数字不相等" fi # for 循环一般格式 # for var in item1 item2 ... itemN # do # command1 # command2 # ... # commandN # done # 写成一行:for var in item1 item2 ... itemN; do command1; command2… done; for tmp in 1 2 3 4 5 do echo "this value is $tmp" done for str in 'this is a string' do echo $str done # while 语句 # while condition # do # command # done int=1 while(( $int<=5 )) do echo $int let "int++" done # 无限循环语法格式: # while : # do # command # done # 或者 # while true # do # command # done # 或者 # for (( ; ; )) # until 循环 until循环执行一系列命令直至条件为真时停止。 # until condition # do # command # done # case 语句 case语句格式如下: # case 值 in # 模式1) # command1 # command2 # ... # commandN # ;; # 模式2) # command1 # command2 # ... # commandN # ;; # esac anum=3 case $anum in 1) echo "选中1" ;; 2) echo "选中2" ;; 3) echo "选中3" ;; 4) echo "选中4" ;; esac
跳出循环 break命令
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
case的语法和C family语言差别很大,它需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break。