9.1.【变量测试语句】
格式:
test 条件测试
条件为真返回0,条件为假返回1 ,缩写为[ 条件测试 ]
• test能够理解3中类型的表达式
1.文件测试
2.字符串比较
3.数字比较
9.2.【test文件测试】
• -f file : 当file文件存在,并且是正规文件时返回真。
test –f /etc/passwd 或[ -f /etc/passwd ]
• -d pathname:当pathname存在,并且是一个目录时返回真
test –d /var/log 或[ -d /var/log ]
• -e pathname:当由pathname指定的文件或目录存在时返回真
• -h file :当file存在并且是符号链接文件时返回真
• -b file : 当文件file存在并且是块文件时返回真
• -c file:当文件file存在并且是字符文件时返回真
• -r pathname :当由pathname指定的文件或目录存在时并且可读时返回真
• -w pathname:当由pathname指定的文件或目录存在时并且可写时返回真
• -x pathname:当由pathname指定的文件或目录存在时并且可执行时返回真
• filename1 -nt filename2 如果 filename1 比 filename2 新,则为真
[ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真
[ /boot/bzImage -ot arch/i386/boot/bzImage ]
9.3.【test字符串比较】
• -z string 如果 string 长度为零,则为真
test –z “$myvar”或者[ -z "$myvar" ]
• -n string 如果 string 长度非零,则为真
test –n “$myvar”或者[ -n "$myvar" ]
• string1 = string2 如果 string1 与 string2 相同,则为真 [ "$myvar" = "one two three" ]
• string1 != string2 如果 string1 与 string2 不同,则为真 [ "$myvar" != "one two three" ]
• 字符串比较运算符,注意引号的使用,这是防止空格扰乱代码的好方法
• 比较[ -z ]与[ -z “”]
9.4.【test数字比较】
num1 -eq num2 等于 test 3 -eq $mynum
num1 -ne num2 不等于 [ 3 -ne $mynum ]
num1 -lt num2 小于 [ 3 -lt $mynum ]
num1 -le num2 小于或等于 [ 3 -le $mynum ]
num1 -gt num2 大于 [ 3 -gt $mynum ]
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]