shell脚本编程进阶及RAID和LVM应用2

文件测试
存在性测试
-a FILE 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用
-e FILE
文件的存在性测试,存在则为真,否则为假

例:~]# [ -e /etc/rc.d/rc.sysinit ]
~]# echo $?
1

存在性及类型测试
-b FILE:是否存在并且为 块设备 文件
-c FILE:是否存在并且为 字符设备 文件
-d FILE:是否存在并且为 目录 文件
-f FILE:是否存在并且为 普通 文件
-h FILE 或 -L FILE:是否存在并且为 符号连接 文件
-p FILE:是否存在并且为 命名管道 文件
-S FILE:是否存在并且为 套接字 文件
文件权限测试:
-r FILE:是否存在并且对当前用户 可读
-w FILE:是否存在并且对当前用户 可写
-x FILE:是否存在并且对当前用户 可执行
特殊权限测试:
-u FILE:是否存在并且 拥有suid权限
-g FILE:是否存在并且 拥有sgid权限
-k FILE:是否存在并且 拥有sticky权限
文件是否有内容:
-s FILE:是否存在并且 有内容
时间戳:
-N FILE:文件自从上一次读操作后是否被修改过
从属关系测试:
-O FILE:当前用户是否为文件的属主
-G FILE:当前用户是否属于文件的属组
双目测试:
FILE1 -ef FILE2:FILE1与FILE2是否指向同一个文件系统的相同inode的硬链接
FILE1 -nt FILE2:FILE1是否新于FILE2
FILE1 -ot FILE2:FILE1是否旧于FILE2

组合测试条件:
逻辑运算:
第一种方式:
COMMAND1 && COMMAND2
COMMAND1 || COMMAND2
!COMMAND

当前用户是否是文件的属主,并且拥有可读权限:
[ -O FILE ] && [ -r FILE ]

第二种方式:
EXPRESSION1 -a EXPRESSION2
EXPRESSION1 -o EXPRESSION2
!EXPRESSION

当前用户是否是文件的属主,并且拥有可执行权限:
[ -O FILE -a -x FILE ]


练习:将当前主机名称保存至hostName变量中;主机名如果为空,或者为localhost.domain,则将其设置为www.magedu.com
]# hostName=$(hostname)
]# echo $hostName
localhost.localdomain
]# [ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostname www.magedu.com
]# echo $hostName
www.magedu.com

猜你喜欢

转载自www.cnblogs.com/jianchen013/p/11771392.html