shell之路 shell核心语法【第四篇】流程控制
if语句
- if ... fi 语句;
- if ... else ... fi 语句;
- if ... elif ... else ... fi 语句。
注意:
expression 和方括号([ ])之间必须有空格,否则会有语法错误。
if语句匹配到,则不会继续往下匹配。
语法:

if [ expression ] then commands fi 或 if [ expression ];then commands fi
实例

#!/bin/sh a=10 b=20 if [ $a == $b ] then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi ~

#!/bin/sh a=10 b=20 if [ $a == $b ];then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi
[root@hy ~]# sh 1.sh a is not equal to b
case语句
语法:

case 值 in 模式1) command ;; 模式2) command ;; *) command ;; esac
实例:

echo 'Input a number between 1 to 4' echo 'Your number is:' read aNum case $aNum in 1) echo 'You select 1' ;; 2) echo 'You select 2' ;; 3) echo 'You select 3' ;; 4) echo 'You select 4' ;; *) echo 'You do not select a number between 1 to 4' ;; esac
[root@hy ~]# sh 1.sh Input a number between 1 to 4 Your number is: 3 You select 3
for语句
语法:

for 变量 in 列表 do commands done

for(()) do commands done
实例:

#!/bin/bash for FILE in $HOME/.bash* do echo $FILE done
/root/.bash_history /root/.bash_logout /root/.bash_profile /root/.bashrc
while语句
expression 和方括号([ ])之间必须有空格,否则会有语法错误。
语法:

while command do commands done
说明:command为(())、[]、命令
实例

#!/bin/bash x=1 while ((x<5)) do let x=x+2 echo $x done
[root@hy ~]# sh 1.sh 3 5
循环控制break continue
实际使用时,一般n为1,n>1的情况了解一下就行
外层循环执行一次,内层循环全部执行
break 跳到循环结束
break
break n
continue
continue 跳到下一次循环开始
continue n 跳到下一层循环开始
谢谢