Shell环境根据命令执行后的返回状态值
($?)来判断是否执行成功,当返回值为0,表示成功,
值为其他时,表示失败。
使用专门的测试工具—test命令
,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值0为成立)
测试语句形式
A: test 条件表达式
B:[ 条件表达式 ]
格式注意:
以上两种方法的作用完全一样,后者为常用。
但后者需要注意方括号[ ]与条件表达式之间至少有一个空格。
test跟 [] 的意思一样
条件成立,状态返回值是0
条件不成立,状态返回值是1
操作注意:
[]两侧为什么要有空格
root@ubuntu:~# [1 = 1]
1: command not found
可以看到:
两侧没有空格,就会报错,为什么呢?因为你不合规范
测试的结果使用echo $?
来查看
逻辑表达式
逻辑表达式一般用于判断多个条件之间的依赖关系。
常见的逻辑表达式有: && 和 ||
&&
命令1 && 命令2
如果命令1执行成功,那么我才执行命令2 -- 夫唱妇随如果命令1执行失败,那么命令2也不执行`
示例:
# [ 1 = 1 ] && echo "条件成立"
条件成立
# [ 1 = 2 ] && echo "条件成立"
#
如果命令1执行成功,那么命令2不执行 -- 对着干如果命令1执行失败,那么命令2执行
示例:
# [ 1 = 2 ] || echo "条件不成立"
条件不成立
# [ 1 = 1 ] || echo "条件不成立"
#
-f 判断输入内容是否是一个文件
示例:
# [ -f weizhi.sh ] && echo "是一个文件"
是一个文件
# [ -f weizhi.sddh ] || echo "不是一个文件"
不是一个文件
-d 判断输入内容是否是一个目录
示例:
# [ -d weizhi.sddh ] || echo "不是一个目录"
不是一个目录
# mkdir nihao
# [ -d nihao ] && echo "是一个目录"
是一个目录
-x 判断输入内容是否可执行
示例:
# [ -x age.sh ] || echo "文件没有执行权限"
文件没有执行权限
# [ -x test.sh ] && echo "文件有执行权限"
文件有执行权限
主要根据给定的两个值,判断第一个与第二个数的关系,如是否大于、小于、等于第二个数。常见选项如下:
表达式 | 含义 |
---|---|
n1 -eq n2 | 相等 |
n1 -gt n2 | 大于 |
n1 -ge n2 | 大于等于 |
n1 -lt n2 | 小于 |
n1 -le n2 | 小于等于 |
n1 -ne n2 | 不等于 |
表达式 | 含义 |
---|---|
str1 == str2 | str1和str2字符串内容一致 |
str1 != str2 | str1和str2字符串内容不一致,!表示相反的意思 |
判断字符是否内容一致,例:
root@ubuntu:~# [ a == a ]
root@ubuntu:~# echo $?
0
root@ubuntu:~# [ a != a ]
root@ubuntu:~# echo $?
1
定义:
计算表达式,简单来说就是对具体的内容进行算数计算
格式:
$(()) $(( 计算表达式 ))
let let 计算表达式
注意:
$(())中只能用±*/和()运算符,并且只能做整数运算
root@ubuntu:~# echo $((100/5))
20
let 变量名a=变量名a+1
root@ubuntu:~# i=1
root@ubuntu:~# let i=i+7
root@ubuntu:~# echo $i
8
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态