网络上能找到的相关资料太多了,也太繁杂,但有些人还整理得不错,下面根据自己的偏好再梳理一下,有些是自己对照着man手册翻译的,下面的例子都是自己编造自己测试OK,都是比较实用的东西,方便自己日后参考。
1、算术运算比较运算符(bash自身不能比较浮点数)
[ $num1 -eq $num2 ] -ne 不等于 [ 100 -ne $num1 ] -lt 小于 [ 100 -lt `expr $num1 + $num2` ] -le 小于或等于 [ 100 -le `expr $num1 /* $num2` ] -gt 大于 [ 100 -gt `expr $num1 / $num2` ] -ge 大于或等于 [ 100 -ge `expr $num1 % $num2` ]
2、字符串比较运算符
[ -z "`ps aux | grep mysql`" ] -n string 如果 string 长度非零,则为真 [ -n "$string" ]
【注意】
[ "$str1" != "Snail" ] string1 == string2 如果 string1 与 string2 相同,则为真 [ "$str1" == "$str2" ] (上面用一个 = 也可以,在严格的 POSIX 兼容下使用) string1 < string2 如果 string1 按字典顺序比较小于 string2,则为真 string1 > string2 如果 string1 按字典顺序比较大于 string2,则为真
3、文件比较运算符
[ -e $HOME/.bashrc ] -e filename (同上) -b filename 如果 filename 存在,并且是块文件,则为真 [ -e /dev/loop0 ] -c filename 如果 filename 存在,并且是字符文件,则为真 [ -e /dev/ttyS0 ] -d filename 如果 filename 存在,并且为目录,则为真 [ -d /home/snail ] -f filename 如果 filename 存在,并且为常规文件,则为真 [ -f /dev/ttyS0 ] -g filename 如果 filename 存在,并且为set-group-id,为真 [ -f $HOME/ak47 ] -h filename 如果 filename 存在,并且为符号连接,则为真 [ -h /bin/vi ] -L filename (同上) -k filename 如果 filename 存在,并且设置了sticky位,为真 [ -k /bin/ping ] -p filename 如果 filename 存在,并且为有名管道(FIFO),真 [ -p /tmp/pipe ] -r filename 如果 filename 存在,并且可读,则为真 [ -r /etc/passwd ] -s filename 如果 filename 存在,并且大小不为零,为真 [ -s ./none-zero ] -u filename 如果 filename 存在,并且为set-user-id,为真 [ -f $HOME/ak47 ] -w filename 如果 filename 存在,并且可写,则为真 [ -w /var/log/mail ] -x filename 如果 filename 存在,并且可执行,则为真 [ -x ./start.sh ]
下面这些不常用的:
[ -t /proc/1/fd/10 ] 【提示】 在 /proc/进程号/fd 下可以找到文件描述符:) -O filename 如果 filename 存在,并且被有效用户ID所拥有,则为真 -G filename 如果 filename 存在,并且被有效组ID所拥有,则为真 -S filename 如果 filename 存在,并且为一个socket,则为真 [ -S /tmp/mysql.sock ] -N filename 如果 filename 存在,并且在上次读取后被修改过,则为真 -o optname 如果 shell 选项 optname 被开启,则为真 【提示】
file1 -nt file2 如果 file1 比 file2 新,或者 file1 存在 file2 不存在,则为真 file1 -ot file2 如果 file1 比 file2 旧,或者 file2 存在 file1 不存在,则为真 file1 -ef file2 如果 file1 和 file2 都指向同样的设备(device)和索引节点号(inode numbers),则为真 【提示】
------------------------------------------------------------------------------------------
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!
小蜗牛技术之家 ” 博客,
|