每天一个linux命令之if的简单用法

声明:允许转载,转载请注明链接,谢谢合作!

1 字符串判断

str1 = str2      当两个串有相同内容、长度时为真
str1 != str2     当串str1和str2不等时为真
-n str1       当串的长度大于0时为真(串非空)
-z str1       当串的长度为0时为真(空串)
str1           当串str1为非空时为真

\ >  \ <                               比较大小的时候可以使用大于号,小于号,但是需转义。

2 数字的判断

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为真

3 文件的判断

-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

3 复杂逻辑判断

-a       与
-o       或
!        非

4字符串匹配

if [  `echo $str | grep -e regexp`  ];then

扫描二维码关注公众号,回复: 3287448 查看本文章


if判断式
if [ 条件判断一 ] && (||) [ 条件判断二 ]; then
elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then
else
   执行第三段內容程式
fi


shell判断数组中是否包含某个元素:

ary=(1 2 3)

a=2

if [[ "${ary[@]}" =~ "$a" ]] ; then
    echo "a in ary"
else
    echo "a not in ary"
fi

判读字符串($str)是否包含另一个字符串($str1):

if [  `echo $str | grep -e '$str1'`  ] ; then

    echo yes

fi

e.g#参数总数不等于 1

if [ $# -ne 1 ]; then

  echo "usage : $0 table_name"

  exit 1

fi

e.g#判断hdfs_home是否为空

if [ -z "$HDFS_HOME" ]; then

  echo "hdfs_home not defined, exiting"

  exit 1

fi

猜你喜欢

转载自blog.csdn.net/wx740851326/article/details/72302949
今日推荐