shell编程(2)

一、条件语句

1.1 test

test 测试文件的表达式 是否成立

格式1 test 条件表达式
格式2 [ 条件表达式 ]
[ 操作符 文件或目录 ]
可以用$?来进行测试
$?:表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0值均表示执行出现异常
操作符:
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-a:测试目录或文件是否存在(Exist)   
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
-L: 测试是否为软连接文件

方法一: 

 方法二:

还可以用判断运算符

 

1.2 比较整数数值

[ 整数1 -操作符 整数2 ] 公式
  • -eq:第一个数等于(Equal)第二个数

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

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

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

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

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

 1.3 字符串比较

常用的测试操作符

  • =:字符串内容相同

  • !=:字符串内容不同,! 号表示相反的意思

  • -z:字符串内容为空

  • -n: 字符是否存在

 1.4 逻辑测试

格式:

格式1:[  表达式1  ]  操作符  [  表达式2  ]  ... 
格式2:命令1  操作符  命令2  ... 
&&
&& #且

两个表达式都为真菜为真

cmd1  && cmd2
||
|| #或
任意一个为真即为真

如果第一个为真,就不会执行第二个

第一个为假 ,才会执行第二个

cmd1 || cmd2

常见条件

  • -a或&&:逻辑与,“而且”的意思全真才为真

  • -o或||:逻辑或,“或者”的意思一真即为真

  • !:逻辑否

 

1.5 条件测试

在Shell编程中,双中括号 [[ ... ]] 是一种用于条件测试和逻辑表达式的结构。它通常用于if语句和循环中。

双中括号和单中括号 [ ... ] (测试命令)在某些方面有所不同:

逻辑运算符: 双中括号支持更多的逻辑运算符和表达式,比如&&、||、<、>等,而单中括号需要使用-a和-o来表示逻辑与和逻辑或。

字符串比较: 双中括号允许更灵活的字符串比较操作,如==、!=、<、>等直接用于字符串的比较。

变量处理: 在双中括号内,可以不使用变量引用的特殊转义字符。

 

1.6() {}

(CMD1;CMD2;...)和 { CMD1;CMD2;...; } 都可以将多个命令组合在一起,批量执行

() - 圆括号

  • 用于创建子shell,其中的命令会在一个子进程中执行。这意味着在括号内部声明的变量和环境与外部的Shell环境是隔离的。
  • 可以用来创建子进程,使得其中的命令可以在一个独立的执行环境中运行。

{} - 花括号

  • 在Shell脚本中用来表示命令块,比如用于定义函数或者在一行中执行多个命令。
  • 用于在一行中分隔命令或者定义代码块。
这些括号在Shell中有不同的用途,使用时要根据需要选择合适的括号类型。 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值