美文网首页
linux shell 脚本 常用的if判断条件

linux shell 脚本 常用的if判断条件

作者: QxQx | 来源:发表于2021-03-13 17:41 被阅读0次

工作中经常需要写shell脚本来处理一些重复的东西,使用脚本自动编译,使用脚本多机器传输文件。

因为不是天天写shell,只是用到的时候写一个,再加上脚本中的if的判断条件有点多,容易忘记,所以做个备忘录,以备不时之需

先说一下 if 表达式的基本语法

if [ command ]; then
   符合该条件执行的语句
fi
if [ command ];then
   符合该条件执行的语句
elif [ command ];then
   符合该条件执行的语句
else
   符合该条件执行的语句
fi

注意:

  1. if 条件 要以 if 结束
  2. [] if语句中 和 表达式要注意空格
  3. thenfi 是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开
  4. 使用 -z 或者 -n 来检查长度的时候,没有定义的变量也为0

下面是常用表达式

数字判断

表达式 含义
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真

逻辑相关

表达式 含义
-a
-o
!

字符串相关

表达式 含义
STRING 当串str1为非空时为真
-z STRING “STRING” 的长度为零则为真
-n STRING “STRING” 的长度为非零 non-zero则为真
STRING1 == STRING2 如果2个字符串相同则为真
STRING1 != STRING2 如果字符串不相等则为

文件相关

表达式 含义
-a FILE 如果 FILE 存在则为真
-b FILE 如果 FILE 存在且是一个块特殊文件则为真
-c FILE 如果 FILE 存在且是一个字特殊文件则为真
-d FILE 如果 FILE 存在且是一个目录则为真
-e FILE 如果 FILE 存在则为真
-f FILE 如果 FILE 存在且是一个普通文件则为真
-g FILE 如果 FILE 存在且已经设置了SGID则为真
-h FILE 如果 FILE 存在且是一个符号连接则为真
-k FILE 如果 FILE 存在且已经设置了粘制位则为真
-p FILE 如果 FILE 存在且是一个名字管道(F如果O)则为真
-r FILE 如果 FILE 存在且是可读的则为真
-s FILE 如果 FILE 存在且大小不为0则为真
-t FD 如果文件描述符 FD 打开且指向一个终端则为真
-u FILE 如果 FILE 存在且设置了SUID (set user ID)则为真
-w FILE 如果 FILE 如果 FILE 存在且是可写的则为真
-x FILE 如果 FILE 存在且是可执行的则为真
-O FILE 如果 FILE 存在且属有效用户ID则为真
-G FILE 如果 FILE 存在且属有效用户组则为真
-L FILE 如果 FILE 存在且是一个符号连接则为真
-S FILE 如果 FILE 存在且是一个套接字则为真
FILE1 -ot FILE2 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真
FILE1 -ef FILE2 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真
-o OPTIONNAME 如果 shell选项 “OPTIONNAME” 开启则为真

相关文章

网友评论

      本文标题:linux shell 脚本 常用的if判断条件

      本文链接:https://www.haomeiwen.com/subject/rnixcltx.html