Bash 条件表达式(Bash Conditional Expressions)
Bash 条件表达式分三类:文件,文本(字符串),数值。
文件类
先看一个例子:判断文件是否存在?
#!/bin/bash
if [ -e helloworld.sh ]
then
echo "helloworld.sh exists!"
else
echo "helloworld.sh does not exists!"
fi
这里用到的操作符是 -e
关于文件的操作符,主要都是一元操作符,也有几个二元的,如下:
*[1]
block special file, 块设备:如果一个设备是随机(无序的)访问的,那么它就属于块设备。如:硬盘,光驱,U盘。
character special file, 字符设备:如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备。如:键盘。
(ref: http://blog.itpub.net/10522540/viewspace-198228)
*[2]
regular file, regular的意思就是不是device file, 不是socket,不是pipe,不是。。。剩下的就是regular file,比如一个text 文件,一个可执行文件,一个图片……等等。
(by sakulagi from http://bbs.chinaunix.net/thread-2251937-1-1.html)
文本类
数值类
Bash 仅支持整数(正数,负数和0),数值相关的条件操作符,都是二元操作符,列表如下:
注意在使用上表第二列等效的操作符时,符号两边的数字要有空格。
其他
参考
http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions