前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三分钟掌握linux shell脚本流程控制语法

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

作者头像
机智的程序员小熊
发布2019-12-11 21:19:20
1K0
发布2019-12-11 21:19:20
举报
文章被收录于专栏:技术面面观技术面面观

流程控制

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

if else

代码语言:javascript
复制
#!/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

for 循环

代码语言:javascript
复制
#!/bin/bash

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

while 循环

代码语言:javascript
复制
#!/bin/bash
i=0
while [[ $i<3 ]]
do
    echo $i
    let "i++"
done

输出

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

代码语言:javascript
复制
#!/bin/bash
echo 'press <CTRL-D> exit'
while read num
do
    echo "you input is $num"
done

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

死循环

代码语言:javascript
复制
while true
do
    command
done

或者

代码语言:javascript
复制
for (( ; ; ))
do
    command
done

死循环,使用Ctrl+C退出。

跳出循环

就是continuebreak

case

代码语言:javascript
复制
#!/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

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

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

代码语言:javascript
复制
case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机智的程序员小熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 流程控制
  • if else
  • for 循环
  • while 循环
  • 死循环
  • 跳出循环
  • case
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档