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

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是正整数或者负整数。





译者序<br><br>毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell),几乎所有的Linux和绝大部分的UNIX都可以使用Bash。作为系统与用户之间的交互接口,shell几乎是你在UNIX工作平台上最亲密的朋友,因此,学好shell,是学习Linux/UNIX的的开始,并且它会始终伴随你的工作学习。<br><br>shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题--无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍了Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性,在书中还有许多练习可以引导你思考,以得到更深入的知识。无论你是新手还是老手,或是使用其他语言的程序员,我能肯定你能在此书用受益。而本书除了介绍BASH的知识之外,也有许多有用的关于Linux/UNIX的知识和其他shell的介绍。<br><br>在看到本书的英文版后,我决定把它翻译出来,在Linuxsir论坛上结识了译者之一杨春敏共同翻译这本书,600多页的书是本大部头的书,我们花了6个月的业余时间才翻译完了。<br><br>关于版权的问题,英文版的作者Mendel Cooper对英文版的版权做了详细的约定,请参考:Appendix Q. Copyright。中文版版权由译者杨春敏和黄毅共同所有,在遵守英文版版权相应条款的条件下,欢迎在保留本书译者名字和版权说明以非盈利的方式自由发布此中文版,以盈利目的的所有行为必须联系英文作者和两位中文译者以获得许可。<br><br>本书得以成稿,我(黄毅)要多谢我的女朋友,本该给予她的时间我用来了翻译,多谢你的理解,你是一个很棒的女朋友!<br><br> 译者 杨春敏 黄毅<br> 2006.5.15<br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值