Shell脚本:test命令
test 命令用于检查某个条件是否成立,它可以进行数值、字符串和文件三个方面的测试。
数值:参数如下
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
实例代码如下:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash num1=100 num2=100 if test $[num1] -eq $[num2] then echo "两个数相等" else echo "两个数不相等" fi |
运行脚本,结果如下:
1 |
两个数相等 |
代码中的 [] 执行基本的算数运算,运算代码如下:
1 2 3 4 5 6 |
#!/bin/bash num1=10 num2=20 res=$[num1+num2] echo "$num1+$num2=$res" |
运行脚本,结果如下:
1 |
10+20=30 |
字符串:参数如下
= | 等于则为真 |
!= | 不相等则为真 |
-z 字符串 | 字符串的长度为零则为真 |
-n 字符串 | 字符串的长度不为零则为真 |
演示代码如下:
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash str1="string" str2="string1" if test $str1 = $str2 then echo "两个字符串一样" else echo "两个字符串不一样" fi |
运行脚本,结果如下:
1 |
两个字符串不一样 |
文件:参数如下
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
演示代码如下:
1 2 3 4 5 6 7 8 9 |
#!/bin/bash file=printf.sh if test -e $file then echo "文件$file存在" else echo "文件$file不存在" fi |
运行脚本,结果如下:
1 |
文件printf.sh存在 |