文件表达式
if [ -f file ] 如果文件存在
if [ -d ... ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
if [ -e file ] 如果文件存在
if [ 条件一 -o 条件二 ] 这里的-o相当于||(逻辑或)
if [ 条件一 -a 条件二 ] 这里的-o相当于&&(逻辑与)
例子:
下面是演示逻辑与和逻辑或
(1) if [ $A = "a" -a $B = "b" ]; then #逻辑与
(2) if [ $A = "a" -o $B = "b" ]; then #逻辑或
(3) if [[ $A = "a" ]] && [[ $B = "b" ]]; then #逻辑与
(4) if [[ $A = "a" ]] || [[ $B = "b" ]]; then #逻辑或
整数变量表达式
# -eq -ne -lt -nt只能用于整数,不适用于字符串,字符串等于用赋值号=
# =放在别的地方是赋值,放在if [ ] 里就是字符串等于,shell里面没有==的,那是c语言的等于
if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
字符串变量表达式
If [ $a = $b ] 如果string1等于string2
字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)
转载于:https://blog.51cto.com/junlinux/1339796