Shell编程语法之三:流程控制

13 篇文章 0 订阅

一、test命令

语法:

test $x = $y #效果同[ $x = $y ]

二、if语句

语法:

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN #sh的流程控制不可为空,如果else分支没有语句执行,就不要写这个else。
fi

实例:
常与test方法连用

x=$[2*3]
y=$[1+5]
if test $[x] -eq $[y] #此处中括号可有可无,效果与 [ $x -eq $y ]相同
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;… commandN; done;

实例:

for i in 1 23 45; do echo -e 'i=\c' ; echo $i;done;

i=1
i=23
i=45


四、while 语句

语法:

while condition
do
    command
done

实例:

echo 'use <CTRL-D> to exit'
echo -n 'you best film is:'
while read film
do 
 echo woo! i like $film too!
done

use < CTRL-D> to exit
you best film is:we
woo! i like we too!
weeee
woo! i like weeee too!


五、until 循环

until循环执行一系列命令直至条件为真时停止。until循环与while循环在处理方式上刚好相反。
语法:

until condition
do
    command
done
#条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次—请注意这一点。

六、case语句

语法:

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

case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

使用esac结束case。

实例:

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

输出:

输入 1 到 4 之间的数字:
你输入的数字为:
6
你选择了 5-7之间的数


七、跳出循环

  1. break:结束循环
  2. continue:继续下一次循环
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值