0
点赞
收藏
分享

微信扫一扫

三分钟掌握linux shell脚本流程控制语法


流程控制


这一次我们的主题是​​shell​​脚本中的流程控制,gif动图所见即所得,语法如下。

if else

#!/bin/bash

if [ $1 == $2 ];then

echo "a == b"

elif [ $1 -gt $2 ];then

echo "a > b"

elif [ $1 -lt $2 ];then

echo "a < b"

else

echo "error"

fi

三分钟掌握linux shell脚本流程控制语法_bash


for 循环

#!/bin/bash

for loop in 1 2 3 4 5

do

echo "The value is: $loop"

done

三分钟掌握linux shell脚本流程控制语法_流程控制_02


while 循环

#!/bin/bash
i=0
while [[ $i<3 ]]
do
echo $i
let "i "
done

输出

三分钟掌握linux shell脚本流程控制语法_死循环_03

while的判断条件可以从键盘输入,成为交互式的脚本

#!/bin/bash
echo 'press <CTRL-D> exit'
while read num
do
echo "you input is $num"
done

三分钟掌握linux shell脚本流程控制语法_流程控制_04

ps: ​​until​​​循环与​​while​​​循环相反,​​until​​​直到判断条件为真才停止,语法同​​while​​完全一样就不多介绍了。


死循环

while true

do

command

done

或者

for (( ; ; ))
do
command
done

死循环,使用Ctrl C退出。


跳出循环

就是​​continue​​​和​​break​

case

#!/bin/bash
case $1 in
1) echo 'You have chosen 1'
;;
2) echo 'You have chosen 2'
;;
*) echo 'You did not enter a number between 1 and 2'
;;
esac

三分钟掌握linux shell脚本流程控制语法_bash_05

同编程语言中的​​switch​​​一样,只有语法略微不同 ,​​esac​​​为​​case​​的结束符。

每个模式,用右括号结束​​)​​​,如果没有任何匹配的就用​​*)​​​,每个模式用​​;;​​两个分号连一起结束。

case 值 in

模式1)

command1

command2

...

commandN

;;

模式2)

command1

command2

...

commandN

;;

esac

三分钟掌握linux shell脚本流程控制语法_流程控制_06


举报

相关推荐

0 条评论