SHELL编程之条件语句

test命令用于检查条件表达式,根据不同的操作符判断文件类型、权限或进行整数和逻辑比较。在shell脚本中,if语句和case语句提供了基于不同条件执行不同命令的功能,支持单分支、双分支和多分支判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

test 命令

测试表达式是否成立,若成立返0,否则返回其他数值

test   条件表达式

[条件表达式]

常用测试操作符

-d测试是否为目录
-f

测试是否为文件

-e测试目录或文件是否存在
-r测试 当前用户是否有读权限
-w测试 当前用户是否有写权限
-x测试 当前用户是否有执行权限

 整数数值比较

格式:[ 整数1 操作符 整数2 ] 

  • -eq:等于(Equal)                                       ==
  • -ne:不等于(Not Equal)                             !=
  • -gt:数大于(Greater Than)                           > 
  • -lt:小于(Lesser Than)                                 <
  • -le:小于或等于(Lesser or Equal)                <=
  • -ge:大于或等于(Greater or Equal)            >=

逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...

格式2:命令1 操作符 命令2 ...

常用测试操作符

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

[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]] 
 
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]] 

if语句 

单分支

if [ 表达式 ]              条件测试

then                        命令序列
  ...
fi                              结束

双分支

 if [ 表达式 ];then
   ...
 else
   ...
 fi

read -p '输入内容' num
 if [ $num -eq $num ]
  then
  if [ $(($num % 2)) == 0 ]
   then
     echo '偶数'
    else
     echo '奇数'
     fi
echo '整数'
 else
echo '不是整数'
fi

 多分支语句

if [ 表达式 ];then
  ...
elif [ 表达式 ];then
  ...
elif [ 表达式 ];then
  ...
[else]
 
fi

 

 case语句

格式

case  变量值  in
模式1)
      命令序列1
;;
模式2)
      命令序列2
;;
*)
     默认命令序列
esac 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值