shell编程的条件

test 选项  对象  等价于[ ]

-d:测试是否为目录(Directory)

-e:测试目录或文件是否存在(Exist)

-a:测试目录或文件是否存在(Exist)  

-f:测试是否为文件(File)

-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(Write)

-x:测试当前用户是否有权限执行(eXcute)

test -r 判断当前用户是否有条件读取

linux

test

[ ]

[[ ]]加强版的单个[ ]可以支持正则表达式和通配符

比较整数的数值

[  整数1  -操作符  整数2  ] 公式

-eq:第一个数等于(Equal)第二个数

-ne:第一个数不等于(Not Equal)第二个数

-gt:第一个数大于(Greater Than)第二个数

-lt:第一个数小于(Lesser Than)第二个数

-le:第一个数小于或等于(Lesser or Equal)第二个数

-ge:第一个数大于或等于(Greater or Equal)第二个数

字符串比较

  • =:字符串内容相同
  • !=:字符串内容不同,! 号表示相反的意思
  • -z:字符串内容为空
  • -n: 字符是否存在

逻辑测试

短路与

全真才为真

cmd1 && cmd2 命令一为真命令二为真才为真  其中一个真则为假

短路或

一真即为真

cmd1 || cmd2

常见条件

  • -a&&:逻辑与,而且的意思全真才为真
  • -o||:逻辑或,或者的意思一真即为真
  • !:逻辑否

ping 小脚本

-c 发送包的个数

-i 发送的间隔时间

-W 超时时间

-w 多少秒后停止ping操作

3.4.5 双中括号

[[ expression ]] 用法

== 左侧字符串是否和右侧的PATTERN相同

 注意:此表达式用于[[ ]]中,PATTERN为通配符

=~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配

 注意: 此表达式用于[[  ]]中;扩展的正则表达式

if语法的结构

单分支

if判断条件

then

命令语句

else

命令语句

fi

多分支

if 判断条件1

then

命令序列 需要执行的操作

elif 判断条件2

then

命令序列2

elif判断条件3

then

命令序列

elif 判断条件4

then

命令序列

case语句结构

case多分支结构

case 变量值 in

模式1)

命令序列1

;;

模式2)

;;

......

*)

默认命令序列

esac

case支持glob风格的通配符:

*任意长度任意字符

?任意单个字符

[0-9]指定范围内的任意单个字符

| 或者,如:a|b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值