shell 脚本中 if 各种条件判断的使用

这篇具有很好参考价值的文章主要介绍了shell 脚本中 if 各种条件判断的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. if 在shell中语法格式

1.1 if-elif-else语法格式

if [ command ];then
elif [ command ];then
else
fi

1.2 if-else语法格式

if [ command ];then
else
fi

1.3 if语法格式

if [ command ];then
fi

2. 字符串运算符

 =	检测两个字符串是否相等,相等返回 true。	[ $a = $b ] 返回 false。
 !=	检测两个字符串是否不相等,不相等返回 true。	[ $a != $b ] 返回 true。
 -z	检测字符串长度是否为0,为0返回 true。	[ -z $a ] 返回 false。
 -n	检测字符串长度是否不为 0,不为 0 返回 true。	[ -n "$a" ] 返回 true。
 $	检测字符串是否不为空,不为空返回 true。	[ $a ] 返回 true。

示例:

str1="小明"
str2="小红"
str3=""
if [ $str1 = "小明" ];then
    echo "${str1} 和 小明 是相等的"
fi
if [ $str1 != $str2 ];then
    echo "${str1}${str2} 是不相等的"
fi
if [ -z $str3 ];then
    echo "${str3} 是空的"
fi
if [ -n $str1 ];then
    echo "${str1} 不是空的"
fi
if [ $str1 ];then
    echo "${str1} 不是空的"
fi

运行结果:

小明 和 小明 是相等的
小明 和 小红 是不相等的
 是空的
小明 不是空的
小明 不是空的

3. 关系运算符

-eq	检测两个数是否相等,相等返回 true。	[ $a -eq $b ] 返回 false。
-ne	检测两个数是否不相等,不相等返回 true。	[ $a -ne $b ] 返回 true。
-gt	检测左边的数是否大于右边的,如果是,则返回 true。	[ $a -gt $b ] 返回 false。
-lt	检测左边的数是否小于右边的,如果是,则返回 true。	[ $a -lt $b ] 返回 true。
-ge	检测左边的数是否大于等于右边的,如果是,则返回 true。	[ $a -ge $b ] 返回 false。
-le	检测左边的数是否小于等于右边的,如果是,则返回 true。	[ $a -le $b ] 返回 true。

示例:

a=10
b=20
c=10
if [ $a -eq $c ];then
 echo "${a} == ${c}"
fi
if [ $a -ne $b ];then
 echo "${a} != ${b}"
fi
if [ $b -gt $a ];then
 echo "${b} > ${a}"
fi
if [ $a -lt $b ];then
 echo "${a} < ${b}"
fi
if [ $b -ge $a ];then
 echo "${b} >= ${a}"
fi
if [ $a -le $b ];then
 echo "${a} <= ${b}"
fi

运行结果:

10 == 10
10 != 20
20 > 10
10 < 20
20 >= 10
10 <= 20

4. 逻辑运算符

!	非运算,表达式为 true 则返回 false,否则返回 true。	[ ! false ] 返回 true。
-o ||	或运算,有一个表达式为 true 则返回 true。	[ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a &&	与运算,两个表达式都为 true 才返回 true。	[ $a -lt 20 -a $b -gt 100 ] 返回 false。

示例:

a=10
b=20
if [ $a != $b ];then
 echo "${a} != ${b}"
fi
if [ $a -lt 100 -a $b -gt 10 ];then
 echo "${a} < 100 并且 ${b} > 10"
fi
if [ $a -lt 100 -o $b -gt 10 ];then
 echo "${a} < 100 或者 ${b} > 10"
fi

运行结果:

10 != 20
10 < 100 并且 20 > 10
10 < 100 或者 20 > 10

5. 文件运算符

-d file	检测文件是否是目录,如果是,则返回 true。	[ -d $file ] 返回 false。
-f file	检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。	[ -f $file ] 返回 true。
-r file	检测文件是否可读,如果是,则返回 true。	[ -r $file ] 返回 true。
-w file	检测文件是否可写,如果是,则返回 true。	[ -w $file ] 返回 true。
-x file	检测文件是否可执行,如果是,则返回 true。	[ -x $file ] 返回 true。
-s file	检测文件是否为空(文件大小是否大于0),不为空返回 true。	[ -s $file ] 返回 true。
-e file	检测文件(包括目录)是否存在,如果是,则返回 true。	[ -e $file ] 返回 true。
-b file	检测文件是否是块设备文件,如果是,则返回 true。	[ -b $file ] 返回 false。
-c file	检测文件是否是字符设备文件,如果是,则返回 true。	[ -c $file ] 返回 false。
-g file	检测文件是否设置了 SGID 位,如果是,则返回 true。	[ -g $file ] 返回 false。
-k file	检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。	[ -k $file ] 返回 false。
-p file	检测文件是否是有名管道,如果是,则返回 true。	[ -p $file ] 返回 false。
-u file	检测文件是否设置了 SUID 位,如果是,则返回 true。	[ -u $file ] 返回 false。

示例:

file=/Users/xx/Documents/study/shell/shell_if_boolean.sh
dir_file=/Users/xx/Documents/study/shell/
if [ -d $dir_file ];then
  echo "${dir_file} 是一个目录"
fi
if [ -f $file ];then
 echo "${file} 是一个普通文件"
fi
if [ -r $file ];then
 echo "${file} 文件可读"
fi
if [ -w $file ];then
 echo "${file} 文件可写"
fi
if [ -x $file ];then
 echo "${file} 文件可执行"
fi
if [ -e $file ];then
 echo "${file} 文件存在"
fi
if [ -s $file ];then
 echo "${file} 文件为空"
else
 echo "${file} 文件不为空"
fi

运行结果:文章来源地址https://www.toymoban.com/news/detail-581929.html

/Users/xx/Documents/study/shell/ 是一个目录
/Users/xx/Documents/study/shell/shell_if_boolean.sh 是一个普通文件
/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件可读
/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件可写
/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件可执行
/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件存在
/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件为空

到了这里,关于shell 脚本中 if 各种条件判断的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • shell脚本中的运算符和条件判断

    在Shell脚本中,你可以使用各种运算符来执行数学运算、比较和逻辑操作。 计算方式: $[ ] $(( )) 例: a= $[(9+5) 90] 打印输出结果 == echo $a test $a = 90 [ $a = 90 ] 注意事项: 判断处理中间空格隔开 关系运算符: -eq 等于 -lt 小于 -gt 大于 -ne 不等于 -le 小于等于 -ge 大于等于 文件类型

    2024年04月17日
    浏览(34)
  • Linux使用shell脚本判断cpu架构

    sh文件示例如下: #!/bin/sh SCRIPTDIR=\\\"$( cd \\\"$( dirname \\\"$0\\\"  )\\\" pwd  )\\\" dlldir=$SCRIPTDIR cd `dirname $0` get_arch=`arch` dotnetName=\\\"dotnet\\\" if [[ $get_arch =~ \\\"x86_64\\\" ]];then     echo \\\"this is x86_64\\\"     if [ ! -f dotnet ];then         tar xvf aspnetcore-runtime-3.1.30-linux-x64.tar.gz     fi     dotnetName=\\\"./dotnet\\\" elif [[

    2023年04月26日
    浏览(47)
  • Linux shell脚本set -e原理(set -o errexit 命令出错退出)(|| true屏蔽前面子命令返回值)(用if判断即使命令返回值不为零也不会退出)

    set -e 是 Linux shell 中的一个选项,它的作用是在脚本执行过程中,一旦出现任何命令执行失败(返回非零的退出状态码),脚本就会立即退出。 具体原理如下: 当设置了 set -e 选项后,shell 会在每个命令执行后检查其退出状态码。 如果命令的退出状态码为非零,表示命令执行

    2024年02月22日
    浏览(29)
  • Linux centos7 bash编程(循环与条件判断)

    在编程训练中,循环结构与条件判断十分重要。 根据条件为真、为假,确定是否执行循环。 有时,根据条件的真假结果,决定执行哪些语句,这就是分支语句。 为了训练分支语句与循环语句,我们设计一个案例: 求一组数字:两数平方和为另一数平方 符合条件时,有三个

    2024年02月10日
    浏览(33)
  • MySQL中使用IF子查询实现条件判断(where之后用if)

    废话不多说,直接上代码

    2023年04月23日
    浏览(47)
  • Linux Bash Shell 脚本入门(2)——GNU

    ​ 目录 Linux Bash Shell 脚本入门(2)——GNU GNU与Linux GNU GNU的组成 Shell GNOME桌面环境 X Window 软件 GNOME 可点击内容,大部分来自维基百科,可以点击了解详情。 GNU操作系统起源于GNU计划,由理查德·斯托曼在麻省理工学院人工智能实验室发起,希望发展出一套完整的开放源代码

    2024年02月19日
    浏览(25)
  • Windows 批处理(bat) if条件判断语句使用教程

    在bat脚本中,if条件判断语句共有6种比较操作符,分别为 操作符(不区分大小写) 描述 全称 equ 等于 equal neq 不等于 no equal lss 小于 less than leq 小于等于 leq less than or equal gtr 大于 greater than geq 大于等于 geq greater than or equal 其中,只有等于操作符可以使用符号 “==” 表示,其

    2024年02月03日
    浏览(36)
  • 【Shell编程】Linux Shell编程入门:输入输出、变量、条件判断、函数和运算

    在Linux操作系统中,Shell编程是一项非常重要的技能。通过Shell编程,我们可以自动化执行各种任务,提高工作效率。无论是系统管理、数据处理还是软件开发,都离不开Shell脚本的应用。本篇博客将带领大家深入了解Shell编程的基础知识,包括输入输出、变量、条件判断、函数

    2024年02月14日
    浏览(36)
  • Linux系统Shell脚本编程之条件语句

    Shell 环境根据命令执行后的返回状态值 \\\" $? \\\" 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。 使用专门的测试工具 test 命令,可以对特定条件进行测试,并根据返回值(值为0)来判断是否成立。 test命令格式 文件测试指的是根据给定的路径名

    2024年01月25日
    浏览(53)
  • Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制

    目录 一、Shell 编程入门 1. 认识 Shell 2. Shell 脚本的创建与执行         二、Shell 变量 1. 系统变量和自定义变量 2. 变量的基本规则 3. 设置环境变量 4. 位置参数变量 5. 预定义变量 三、运算符 四、条件判断 五、流程控制 1. if 语句 2. case 语句 3. for 循环 4. while 循环 六、rea

    2024年02月03日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包