专栏首页技术面面观三分钟掌握linux shell脚本流程控制语法

三分钟掌握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

for 循环

#!/bin/bash

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

while 循环

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

输出

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

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

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

死循环

while true
do
    command
done

或者

for (( ; ; ))
do
    command
done

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

跳出循环

就是continuebreak

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

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

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

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

本文分享自微信公众号 - 编程三分钟(coding3min),作者:小熊爱编程

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 忽略不想提交的文件- 每天三分钟玩转Git(10)大结局

    第二种:git远程仓库里有这些文件,比如配置,我们必须要在本地修改配置来适应当前运行环境,难说还会涉及到数据库连接密码等敏感信息,这种情况下我们不想每次提交的时...

    机智的程序员小熊
  • 如何无网络下免编译的安装程序(RPM包)

    摘要:rpm包是预先在Linux主机上编译好并打包的文件,安装起来非常快捷。不需要再进行繁琐的编译等操作,拿来就能用,区别于yum包管理,rpm可以在不需要网络...

    机智的程序员小熊
  • 10 个方便的Bash别名

    你有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 Bash 别名派上用场的地方。它们允许你将长而神秘的命令压缩为易于记忆和使用...

    机智的程序员小熊
  • shell程序设计的流程控制

    变量名可以是用户选择的任何字符串,如果变量名是var,则在in之后给出的数值将顺序替换循环命令列表中的$var。如果省略了in,则变量var的取值将是位置参数。...

    心跳包
  • 利用.htaccess文件实现伪静态

    雨落凋殇
  • collection之map

    金GoS
  • 100篇泛癌研究文献解读之snoRNAs

    为了分析不同类型、组织起源肿瘤的共性、差异以及新课题。TCGA于2012年10月26日-27日在圣克鲁兹,加州举行的会议中发起了泛癌计划。参考:https://...

    生信技能树
  • MEMS VOA光衰减器的工作原理

    MEMS(Micro Electro Mechanical System,微机电系统)技术被广泛应用于光纤通信系统中,MEMS技术与光学技术的结合,通常称作MO...

    亿源通科技HYC
  • Android Installd 分析

    用户5189678
  • Android Installd 分析

    BuiltinFunctionMap::Map& BuiltinFunctionMap::map() const {

    用户5189678

扫码关注云+社区

领取腾讯云代金券