p; -t FD:测试文件描述符是否在终端上被打开,被打开为真,否则为假;
文件的访问权限测试: -r FILE:测试文件是否存在且当前用户是否被授予读取权限,存在且授权为真,否则为假; -w FILE:测试文件是否存在且当前用户是否被授予写权限,存在且授权为真,否则为假; -x FILE:测试文件是否存在且当前用户是否被授予执行权限,存在且授权为真,否则为假;
文件特殊权限标识测试: -u FILE:测试文件是否存在且设置了SUID,存在且授权为真,否则为假; -g FILE:测试文件是否存在且设置了SGID,存在且授权为真,否则为假; -k FILE:测试文件是否存在且设置了STICKY,存在且授权为真,否则为假;
文件的所有权测试: -O FILE:测试文件是否存在且其属主为当前有效用户;存在且属主为当前有效用户为真,否则为假; -G FILE:测试文件是否存在且其属组为当前有效用户的所在组;存在且属组为当前有效用户的所在组为真,否则为假;
双目测试: FILE1 -ef FILE2:测试两个文件是否拥有相同的Ionde编号;即:两个文件是否为硬链接;(以后再细说)
测试语句中添加逻辑运算符号: 1.利用bash的逻辑运算符号 [ expression1 ] && [ expression2 ] 与 [ expression1 ] || [ expression2 ] 或 ![ expression1 ] 非 2.利用条件测试命令本身的逻辑运算符号: [ expression1 -a expression2 ] 与运算 [ expression1 -o expression2 ] 或运算 [ !expression1 ] 取反
命令的执行结果: 1.命令的正常输出结果; 2.命令的执行状态返回值; 0-255 0:表示命令成功执行或者条件判断为真; 1-255:表示命令执行失败或者条件判断为假; 1,2,127:系统默认保留; 3-126,128-255:用户自定义的命令执行状态返回值;
exit命令: exit - exit the shell 格式: exit [n] 退出shell时可以使用n作为状态返回值;如果没有指定n,则默认的状态返回值为最后一条命令的状态返回值;
注意:当shell脚本运行时,一旦遇到exit命令,将立即结束运行此脚本的shell进程,同时此脚本的运行也会停止其后续的所有命令都不会再被解释执行;因此,包含了exit命令的脚本,不要是用source命令来执行;
[root@localhost ~]# [ -e /abcd ] [root@localhost ~]# echo $? 1 [root@localhost ~]# [ -e /abcd ] | exit 5 [root@localhost ~]# echo $? 5
|