shell 脚本 if 条件语句

使用test测试命令时,多数使用 “ [ 条件表达式 ] ”,条件表达式与方括号之间至少需要有一个空格。

1、文件测试:

-d:测试是否为目录;
-f:测试是否为文件;
-e:测试是否文件或目录存在;
-r:测试当前用户是否有权限读取;
-w:测试当前用户是否有权限写入;
-x:测试是否设置有可执行权限;
2、整数值比较:

-eq:第一个数等于第二个数;
-ne:第一个数不等于第二个数;
-ge:第一个数大于或等于第二个数;
-le:第一个数小于或等于第二个数;
-lt:第一个数小于第二个数;
-gt:第一个数大于第二个数;
3、字符创比较:

=:第一个字符串与第二个字符串相同。
!=:第一个字符串与第二个字符串不相同,其中 “ !”表示取反。
-z:检查字符串是否为空,对于未定义或赋予空值的变量将视为空串。
4、逻辑测试:

&&:逻辑与,表示“而且”,只有当前后两个条件都成立时,整个测试命令的返回值才为0(逻辑成立),也可以使用“-a”代替。
||:逻辑或,表示“或者”,只要前后两个条件有一个成立,整个测试命令返回的值即为0。测试时可以使用“-o”代替。
!:逻辑否,表示不,只有当条件不成立时,整个测试命令返回的值才为0。
一、单分支if语句:

执行过程:

单分支if语句示例:

[[email protected] ~]# vim chkconfig.sh
#!/bin/bash
dir="/media/cdrom"                #定义一个变量
if [ ! -d $dir ]                # 定义一个测试条件
then                  # 如果满足则执行下面的命令
        mkdir $dir
fi

[[email protected] ~]# sh chkconfig.sh                  # 执行脚本,进行测试
[[email protected] ~]# ls /media
cdrom

二、双分支if语句:

执行过程:

双分支if语句示例:

[[email protected] ~]# vim pinghost.sh

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null     #ping 3次,间隔0.2秒,ping 不通超时3秒,$1为位置变量
if [ $? -eq 0 ]       # 测试条件为前一条的命令执行成功
then            # 如果成功,则执行以下命令
        echo "主机${1}当前状态为up"
else             # 若不成功,则执行以下命令
        echo "主机${1}当前状态为down"
fi

[[email protected] ~]# sh pinghost.sh 192.168.1.1
主机192.168.1.1当前状态为up
[[email protected] ~]# sh pinghost.sh 192.168.1.2
主机192.168.1.2当前状态为down

三、多分支if语句:

执行过程:

多分支if语句示例:

[[email protected] ~]# vim gradediv.sh

#!/bin/bash
read -p "请输入您的分数:" grade
if [  $grade  -ge  85  ] && [  $grade  -le  100  ]
then
        echo "$grade 分,优秀!"
elif [  $grade -ge 70  ] && [  $grade -le 84  ]
then
        echo "$grade 分,及格!"
else
        echo "$grade 分,不及格"
fi

[[email protected] ~]# . gradediv.sh
请输入您的分数:100
100 分,优秀!
[[email protected] ~]# . gradediv.sh
请输入您的分数:80
80 分,及格!
[[email protected] ~]# . gradediv.sh
请输入您的分数:10
10 分,不及格

原文地址:https://blog.51cto.com/14227204/2428191

时间: 2024-10-05 05:28:39

shell 脚本 if 条件语句的相关文章

Shell脚本之条件语句

条件测试 1.文件测试2.整数测试3.字符串与逻辑测试 if语句: if单分支语句if双分支语句if多分支语句if嵌套语句 test命令:测试特定的表达式 是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值. 格式1:test 条件表达式格式2:[ 条件表达式 ] //注意有空格 文件测试 文件测试是指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读.可写.可执行等. 常用的测试操作符: -d:测试是否为目录(Directory)-e:测试目录或文件是否存在(Ex

Shell脚本的条件控制和循环语句

条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

本文的知识点是关于shell脚本的条件测试的相关内容. 通常在shell脚本中我们需要做各式各样的条件判断,比如,测试一个文件是否存在.是否为文件或目录.是否 具有执行权限等等,所以在shell脚本中,条件判断还是至关重要的.接下来我们进入正题:shell脚本的条件测试. 1.在bash编程中,条件测试常用的语法形式如下表: 提示: 语法1中的test命令和语法2中的[]是等价的.语法3中的[[]]双中括号为扩展的test命令. 语法4中的(())常用于计算. 在双中括号[[]]中可以使用通配符

Shell语法—— while 条件语句

while 循环语句 while 循环语句语法格式为: while < 条件表达式 > do 指令 done 有关脚本运行的相关用法 命令 说明 sh file.sh & 把 file.sh 脚本放到后台运行(后台运行脚本的常用方法) ctl+c 停止执行当前脚本或任务 ctl+z 暂停执行当前脚本或任务 bg 把当前脚本或任务放到后台执行 fg 把当前脚本或任务放到前台执行.如果是多个脚本,需加编号,如: fg 2 jobs 查看当前执行的脚本或任务 kill 关闭执行的脚本任务 有

Shell脚本IF条件判断和判断条件总结

转自:http://m.jb51.net/article/56553.htm 这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结,需要的朋友可以参考下 前言:      无论什么编程语言都离不开条件判断.SHELL也不例外. if list then           do something here       elif list then           do another thing here       e

shell脚本解析6----case语句

BASH中的case结构,可以用于进行多项分支. case "$var" in condition1) ;; condition2) ;; *) default statments;; esac 例如: #!/bin/bash echo "Hit a key, then hit return" read Keypress case "$Keypress" in [A-Z]) echo "Uppercase letter";;

Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序

#!/bin/bash source /etc/profile; ################################################## # Author: ouyangyewei # # # # Content: Combineorder Algorithm # ################################################## # change workspace to here cd / cd /home/deploy/rec

shell脚本执行mysql语句出现的问题

shell脚本执行mysql语句出现的问题,问群里的大牛的到解答,是单引号问题,改成双引号即可 #小提示(对本主题没什么关联):ubuntu目前使用的是dash,导致一些for(()函数无法正常执行, sudo dpkg-reconfigure  dash 选择NO,就改会bash了 一.脚本内容如下: #/bin/bash hostname='192.168.2.52' port=3306 username='root' password='123456' #dbname='' #-----s

Linux Shell脚本编程while语句

Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo    uptime    sleep 3done 2,把监控结果保存到文件,在后台执行,然后用tail -f监控文件变化[email protected]:~/linux/shell/flow_control$ sh while.sh &[1] 12867 #!/bin/bash while truedo    uptime >> log.txt    s