Bash与Csh中的条件表达式
2007-11-09 09:11:36| 分类:
Shell
| 标签:
|举报
|字号大中小 订阅
=========================BASH中的条件表达式=========================
Bash中测试条件表达式时可以使用test命令或"[]",test命令与"[]"的功能是等价的,bash把"[]"的实现连接到test命令
上的."[]"中的条件表达式与"["和"]"之间都必须有至少一个空格.如: [ 2==2 ],否则bash解释器不于通过执行.
文件比较运算符
[ -e filename ] 如果filename存在,则为真 [ -e /var/log/syslog ]
[ -d filename ] 如果filename为目录,则为真 [ -d /tmp/mydir ]
[ -f filename ] 如果filename为常规文件,则为真 [ -f /usr/bin/grep ]
[ -L filename ] 如果filename为符号链接,则为真 [ -L /usr/bin/grep ]
[ -r filename ] 如果filename可读,则为真 [ -r /var/log/syslog ]
[ -w filename ] 如果filename可写,则为真 [ -w /var/mytmp.txt ]
[ -x filename ] 如果filename可执行,则为真 [ -L /usr/bin/grep ]
[ filename1 -nt filename2 ] 如果filename1比filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
[ filename1 -ot filename2 ] 如果filename1比filename2旧,则为真 [ /boot/bzImage -ot arch/i386 ]
字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法)
[ -z string ] 如果string长度为零,则为真 [ -z "$myvar" ]
[ -n string ] 如果string长度非零,则为真 [ -n "$myvar" ]
[ string1 = string2 ] 如果string1与string2相同,则为真 [ "$myvar" = "one two three" ]
[ string1 != string2 ] 如果string1与string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
[ num1 -eq num2 ] 等于 [ 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 ]
=========================CSH中的条件表达式==========================
字符串比较 功能
== 是否相等,若相等返回真
!= 是否不等,若不等返回真
=~ 字符串和模式进行测试是否相等(模式为任意正则表达式)
!~ 字符串和模式测试是否不等(模式为任意正则表达式)
文件测试 功能
-e 测试文件是否存在
-r 测试文件是否可读
-w 测试文件是否可写
-x 测试文件是否可执行
-d 测试文件名是否为目录
-f 测试文件是否为普通文件
-o 测试文件是否被用户所拥有
-z 测试文件是否为空
逻辑运算符 功能
&& 与运算,两个条件同时蛮族
|| 或运算,有一个条件满足
! 取反
注意:bash与csh都支持位运算
评论这张
转发至微博
转发至微博
评论