首页 > 代码库 > Shell 脚本学习笔记八:流程控制
Shell 脚本学习笔记八:流程控制
一、 if else /// 如果else分支没有语句执行,就不要写这个else
1、if 语句
if condition
then
command1
command2
command3
...
fi
/// 写成一行:
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
2、if else
if condition
then
command1
command2
...
else
command
fi
#!/bin/bash num1=100; num2=100; if test $[num1] -eq $[num2] then echo "两个数相等"; else echo "两个数不相等"; fi 输出以下结果: 两个数相等
3、if else-if else
if condition
then
command1
command2
elif condition
then
command
else
command
fi
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi 输出以下结果: a 小于 b
二、for 循环
for var in item1 item2 ... itemN
do
command1
command2
...
done
/// 写成一行
for var in item1 item2 ... itemN; do command1; command2; ... done;
#!/bin/bash for loop in 1 2 3 4 5 do echo "$loop"; done 输出以下结果: 1 2 3 4 5 for str in "This is a string" do echo "$str"; done 输出以下结果: This is a string
三、while 语句
while condition
do
command1
done
while [ $cnt -le 5 ] do echo $cnt let "cnt++" done echo "按下 <CTRL-D> 退出"
while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FILM,按<Ctrl-D>结束循环
echo "按下 <CTRL-D> 退出"
echo -n "输入你最喜欢的电影名:"
while read FILM
do
echo "是的!$FILM 是一部好电影"
done
四、无限循环
1、
while :
do
command
done
2、
while true
do
command
done
3、
for (( ; ; ))
五、until 循环
- until循环执行一系列命令直至条件为真时停止
- until循环与while循环在处理方式上刚好相反
- 条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次
- 一般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有用
until condition
do
command
done
六、case
case 值 in
模式1)
command1
command2
...
;;
模式2)
command1
command2
...
;;
esac
#!/bin/bash echo "输入 1 到 4 之间的数字" echo "你输入的数字为:" read aNum case $aNum in 1) echo "你选择了 1" ;; 2) echo "你选择了 2" ;; 3) echo "你选择了 3" ;; 4) echo "你选择了 4" ;; esac
七、break
跳出所有循环(终止执行后面的所有循环)
while : do echo -n "请输入 1 到 5 之间的数字:" read aNum
case $aNum in 1|2|3|4|5) echo "你输入的数字为: $aNum" ;; *) echo "你输入的数字不是 1 到 5 之间的!结束游戏" break ;; esac done
八、continue
跳出本次循环
Shell 脚本学习笔记八:流程控制