bash条件测试:

        测试方式:

                test EXPRRSSION

                [ EXPRESSION ]

                [[ EXPRESSION ]]

        测试表达式的类别:

                    数值比较

                    字符串测试

                    文件测试

        存在性测试:

                -a FILE

                -e FILE: 文件存在性测试,存在为真,否则为假;

        存在性即类别测试

                -b FILE: 是否存在且为块设备

                    -c FILE:是否存在且为字符设备文件

                -d FILE:是否存在且为目录文件

                -f FILE:是否存在且为普通文件

                -h FILE或 -L FILE :存在且为符号链接文件;

                -p FILE:是否存在且为命令管道文件

                -S FILE: 是否存在且为套接字文件;

            文件权限测试:

                -r FILE:是否存在且可读

                -W FILE:是否存在且可写

                -x FILE:是否存在且可执行

        文件特殊权限测试:

                    -g FILE:是否存在且拥有sgid权限;

                    -u FILE:是否存在且拥有suid权限;

                -k FILE:是否存在且拥有sticky权限;

        文件大小测试:

                -s FILE:是否存在且非空;

        文件是否打开:

                -t fd:fd表示文件描述符是否已经打开且与某终端相关

                -N FILE:文件自动上一次被读取之后是否被修改过

                -O FILE:当前有效用户是否为文件属主

                -G FILE:当前有效用户是否为文件属组;

        双目测试:

                FILE1 -ef FILE2: FILE1:与FILE2是否与指向同一个设备上相同的indoe

                FILE1 -nt FILE2:FILE1:是否新于FILE2

                FILE1 -ot FILE2:FILE1:是否旧于FILE2


组合测试条件:

逻辑运算:

第一种方式:

COMMAND1 && COMMAND2

COMMAND1 || COMMAND2

!COMMAND 

[ -e FILE ] && [ -r FILE ]

第二种方式:

EXPRESSION1 -a EXPRESSION2

EXPRESSION1 -o EXPRESSION2

!EXPRESSION

必须使用命令进行:

#[ -z "$hostName" -o "$hostName"=="local.localdomain"] && hostName zhanx.wang

#[ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab