shell-条件测试
1.基本语法
为了判断shell程序的某种或几种条件是否成立,shell提供了一组测试运算符。通过返回值判断真假
条件测试的语法有两种:test 和[(为了方便阅读使用[])
test expression
[ expresssion ] #条件和左右括号之间必须带空格
2.字符串测试
字符串测试运算符
| 运算符 | 说明 |
|---|---|
| string | 判断指定的字符串是否为空 |
| string1=string2 | 判断两个字符串是否相等 |
| string1!=string2 | 判断两个字符串是否不等 |
| -n string | 判断string是否是非空字符串 |
| -z string | 判断string是否是空字符串 |
#!/bin/bash
x="abc"
test $x #x不为空,所以返回值应该是0
echo $?
y="def"
[ "$x" = "$y" ] #判断两个相等,而x,y两个字符串不相等,输出应该是错误的
echo $?
test "$X" != "$y" #判断两个不相等,输出应该是对的
echo $?
结果如下

3.整数测试
常见整数运算符
| 运算符 | 说明 |
|---|---|
| number1 -eq number2 | 比较两个是否相等,如果相等正确输出 |
| number1 -ne number2 | 两个是否不等,不等则正确输出 |
| number1 -gt number2 | number1是否大于number2,是则正确输出 |
| number1 -lt number2 | number1是否小于number2,是则正确输出 |
| number1 -ge number2 | 是否大于等于....... |
| number1 -le number2 | 是否小于等于....... |
这个很简单

4.文件测试
常见文件操作符
| 操作符 | 说明 |
|---|---|
| -a | 判断文件是否存在。 存在输出0 |
| -b | 文件是否存在且为块文件。 |
| -c | 文件是否存在且为字符文件 |
| -d | 文件是否存在且为目录 |
| -e | 与-a相同 |
| -s | 文件非空 |
| -f | 文件存在且是常规文件 |
| -w | 文件存在且可写 |
| -L | 文件存在且为符号链接 |
| -u | 文件是否有suid位 |
| -r | 文件存在且可读 |
| -x | 文件存在且可执行 |

浙公网安备 33010602011771号