shell 流程控制

shell 流程控制

sh流程控制不可为空

if else

    if 语法格式:
    if condition
then
	command1
	command2
	...
fi

写成一行:

if  [ $(ps -ef | grep -c  "ssh" ) -gt 1 ]; then echo "true"; fi 

if-else

格式:
if condition
then
	command1
	command2
	..
else
	coamnd
fi

if else-if else

格式:
    if condition1
    then
    	command1
    elif condition2
    then
    	command2
    else
    	commandn
    fi

例:判断两个变量是否相等:

a=10
b=20
if [ $a == $b ]
then
	echo "a等于b"
elif [ $a -gt $b ]
then
	echo "a 大于b"
else
	echo "a小于b"
fi

for 循环

格式:
for var in item1 item2 ..
do 
	command1
	command2
	.....
done

写成一行:

for var in item1 item2 ....; do command1; do command2...  done;

例:
for loop in 1 2 3 4 5
do
	echo "The value is : $loop"
done
结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5

while语句

格式:
while condition
do  
	command
done

例:

int=1
while (( $int<=5 ))
do
	echo $int
	let "int++"
done

输出:
1
2
3
4
5

注:Bash let命令用于执行一个或多个表达式,变量计算不需要加$.

while循环可用于读取键盘信息。下面例子中,输入信息被设置为变量FILM。

echo  ‘按下<CTRL_D> 退出’
echo  -n ‘输入你喜欢的网址:'
while read FILM
do 
	echo "$FILM 是一个好网站"
done

结果:

按下<CTRL_D>退出
输入你喜欢的网址:goole
goole是一个好网址

until循环
until循环执行一系列命令直到条件为true.

语法:
until condition
do
	command
done

例:

a=o
until [  ! $a -lt 6 ]
do 
	echo $a
	a="expr $a + 1"
done
输出:
0
1
2
3
4
5

case
shell case语句为多选择语句。可以用case匹配一个值和一个模式,如果匹配成功,执行相匹配的命令。

格式:

 case 值 in
    	模式1)
    		command1
    		command2
    		....
    		;;
    	模式2)
    		command1
    		command2
    		...
    		;;
    esac

例:

echo '输出1到3之间的数字:'
echo '输出的数字为:'
read  $aNum
case $aNum in
	1) echo "你选择了1"
	;;
	2)
		echo "你选择了2"
		;;
	3)echo "你选择了3"
	;;
	*)echo "没有输入1-3之间的数字"
	;;
esac

输出:
输出1到3之间的数字:
输入的数字:
3
你选择了 3

注:如果case无匹配模式,使用 * 捕捉该值,再执行后面的命令。

跳出循环
break 和 continue

  1. break命令:允许跳出所有循环(即终止执行后面的所有循环)。
  2. continue:跳出当前循环。

while实例

while:
do 
	echo -n  "输入1到5 之间的数字:"
	read aNum
	case $aNum in
		1|2|3|4|5)  echo "你输入的数字为$aNum!"
		;;
		*) echo "你输入的数字不在指定区间!"
			break
			;;
	easc
done

输出:

输入1到5之间的数字:7
你输入的数字不在指定区间

continue实例

while:
    do 
    	echo -n  "输入1到5 之间的数字:"
    	read aNum
    	case $aNum in
    		1|2|3|4|5)  echo "你输入的数字为$aNum!"
    		;;
    		*) echo "你输入的数字不在指定区间!"
    			continue
    			echo "游戏结束"
    			;;
    	easc
    done
    当输入大于5的数字时,该循环不会结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值