您的位置:首页 > 运维架构 > Shell

bash参考手册之六(Bash特性)续三

2014-10-20 15:38 162 查看
6.4  Bash条件表达式

条件表达式用在 [[ 复合命令、test以及 [ 内建命令中。

表达式可以是一元或二元的。一元表达式一般用于检测文件的状态。也有一些字符串操作和数字比较操作的一元表达式。如果 file 参数是 /dev/fd/N 的形式,则检查文件描述符 N 。如果 file 参数是 /dev/stdin, /dev/stdout, 或 /dev/stderr 中的一个,则检查文件描述符0,1,2。 

当使用 ‘[[’时, ‘<’ 和 ‘>’使用当前的locale按字典序文本排序。test命令使用ASCII顺序。

除非另有说明,对文件的操作是跟踪符号链接,对链接的目标操作,而不是链接本身。

-a file

如果文件file存在则真。

-b file

如果文件file存在,并且是块文件,则真。

-c file

如果文件file存在,并且是字符文件,则真。

-d file

如果文件file存在,并且是目录,则真。

-e file

如果文件file存在则真。

-f file

如果文件file存在,并且是普通文件,则真。

-g file

如果文件file存在,并且它的组ID设置位被设置了,则真。

-h file

如果文件file存在,并且是符号链接,则真。

-k file

如果文件file存在,并且它的黏着位被设置了,则真。

-p file

如果文件file存在,并且是命名管道(FIFO),则真。

-r file

如果文件file存在,并且可读,则真。

-s file

如果文件file存在,并且大小大于0,则真。

-t fd 

如果文件描述符fd是打开的,并且指向终端,则真。

-u file 

如果文件file存在,并且它的用户ID设置位被设置了,则真。

-w file

如果文件file存在,并且可写,则真。

-x file

如果文件file存在,并且可执行,则真。

-G file

如果文件file存在,并且属于有效组ID,则真。

-L file

如果文件file存在,并且是符号链接,则真。

-N file

如果文件file存在,并且上次读取后被修改过,则真。

-O file

如果文件file存在,并且属于有效用户ID,则真。

-S file

如果文件file存在,并且是套接字,则真。

file1 -ef file

如果文件file1 和file2 指向相同的设备和inode号码,则真。

file1 -nt file2

如果文件file1 比file2 新(根据修改日期),或者file1存在,而file2不存在,则真。

file1 -ot file2

如果文件file1 bifile2 旧,或者file2存在,而file1不存在,则真。

-o optname

如果shell选项 optname 启用,则真。选项应该属于内建命令set的-o选项中的选项。(见 set内建命令)

-v varname

如果shell变量varname被设置了。(被赋值了)

-z string

如果字符串string的长度为0,则真。

-n string

string

如果字符串string的长度非0,则真。

string1 == string2

string1 = string2

如果字符串相等,则真。‘=’ 的形式必须用在POSIX模式下的test命令中。

string1 != string2

如果字符串不相等,则真。

string1 < string2

如果字符串string1在字典排序中在string2之前,则真。

string1 > string2

如果字符串string1在字典排序中在string2之后,则真。

arg1 OP arg2

OP是 ‘-eq’, ‘-ne’, ‘-lt’, ‘-le’, ‘-gt’, 或者 ‘-ge’ 之一。对应的,如果arg1 等于,不等于,小于,小于等于,大于,大于等于arg2,则这些二元算式返回真。arg1和arg2是正整数或者负整数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: