linux shell脚本学习笔记二 使用结构化命令

 使用结构化命令

1.    if-then 语句

语句格式:

if  command

then

   command

fi

 

bash shell if语句会运行if行定义的那个命令。如果该命令的退出状态码时0,则位于then部分的命令就会被执行。

 

2.    if -then-else 语句

差不多

3.    if嵌套

if  command1

then

   commands

elif  command2

then

   more commands

fi

4.    test命令

test 命令提供了在if-then语句中测试不同条件的途径。如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0,如果条件不成立就会退出状态码1.

eg:

if  test  condition

then

   commands

fi

 

另外一种在shell中申明test命令的方法:

if  [  condition  ]

then

        commands

fi

ps:必须在左括号右侧和右括号左侧加一个空格,否则报错。

Test命令可以判断3类条件

a.    数值比较

a  -eq   b     是否相等

a  -ge   b      是否大于或等于

a  -gt   b        是否大于

a  -le   b     是否小于或等于

a  -lt  b   是否小于

a  ne  b   是否不等于

 

b.    字符串比较

str1 = str2

str1 != str2

str1 < str2

str1 > str2

-n str1    是否非0

-z str1    是否为0

 

c.     文件比较

 

5.    使用双圆括号

test命令只允许进行简单的算术操作,双圆括号提供了更多的编程语言里的数学符号。格式如下:

((expression))

expression 可以是任意的数学赋值或比较表达式。双圆括号命令中会用到的其他运算符:

val++  ,  val-- ,  ++val  , --val ,  !  , ~  ,  ** ,  <<  , >>  ,&  ,| ,&&  , ||

eg:

val1 = 10

if(($val1 **2>90))

then

      ((val2 = $val1**2))

      echo “The square of $val1 is $val2”

fi

 

6.    使用双方括号

格式:

[[expression]]

双方括号里的expression 使用了test命令中的采用的标准字符串进行比较。但他提供了另一个功能——模式匹配,在模式匹配中可以定义一个正则表达式

 

7.    case命令

使用case命令不用写出很多elif 语句来不断检查相同变量值。Case命令会检查单个变量列表格式的多个值:

case variable in

pattern1|pattern2) commands1;;

pattern3) commands2;;

*) default commands;;

esac

星号会捕获所有列出模式都不匹配的值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值