shell语法之三-----条件
时间:2010-11-09 来源:FreedomXura
test或者[]命令
在实际工作中,大多数的脚本程序都会广泛使用 shell的布尔判断命令[]或者test命令。一般来说这两种命令是等效的。
eg1:
所以在脚本程序里可以这样写:
也可以这样写:
上面这两种写法的效果是完全一致的。需要特别注意的是[]命令里面的条件和括号之间必须有左右空格.
test命令可以使用的条件可以归纳为3类:字符串比较,算术比较和与文件有关的条件测试。
字符串比较 结果
-n string 如果字符串不为空则结果为真
-z string 如果字符串为空(null)则结果为真
string1 = string2 如果2个字符串相同则结果为真
string1 != string2 如果2个字符串不相同则结果为真
算术比较 结果
int1 -eq int2 如果 int1 等于 int2,则为真
int1 -ge int2 如果 int1 大于或等于 int2,则为真
int1 -gt int2 如果 int1 大于 int2,则为真
int1 -le int2 如果 int1 小于或等于 int2,则为真
int1 -lt int2 如果 int1 小于 int2,则为真
int1 -ne int2 如果 int1 不等于 int2,则为真
文件条件测试 结果
-b file 如果文件为一个块特殊文件,则为真
-c file 如果文件为一个字符特殊文件,则为真
-d file 如果文件为一个目录,则为真
-e file 如果文件存在,则为真
-f file 如果文件为一个普通文件,则为真
-g file 如果设置了文件的 SGID 位,则为真
-G file 如果文件存在且归该组所有,则为真
-k file 如果设置了文件的粘着位,则为真
-O file 如果文件存在并且归该用户所有,则为真
-p file 如果文件为一个命名管道,则为真
-r file 如果文件可读,则为真
-s file 如果文件的长度不为零,则为真
-S file 如果文件为一个套接字特殊文件,则为真
-t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真
-u file 如果设置了文件的 SUID 位,则为真
-w file 如果文件可写,则为真
-x file 如果文件可执行,则为真
例:vi second.sh
运行效果:
test -f <filename> ------检查文件filename是否存在 |
if test -f mxh.c |
if [ -f mxh.c ] |
#!/bin/sh
|
运行效果:
相关阅读 更多 +