我正在尝试在下面的if语句中测试文件夹的所有权,目录和可写性,该语句是否按bash脚本中的预期工作
if [ -O ./testDir -a -d ./testDir -a -w ./testDir ]
then
echo "All is well"
else
echo "All not ok"| mail -s "Folder Issue" -r "xyz<xyz@xyz.com>" xyz@xyz.com
fi
但是我想用下面的内容替换上面的if语句,但它不起作用;如果我在不同的if语句中测试每个条件,效果很好
if [ ! -O ./testDir -a ! -d ./testDir -a ! -w ./testDir ]
then
echo "All not ok"| mail -s "Folder Issue" -r " xyz<xyz@xyz.com>" xyz@cisco.com
fi
如果我做错了请帮助
答案 0 :(得分:1)
not( expr1 and expr2 and expr3 )
(not expr1) or (not expr2) or (not expr3)
所以你应该选择:
if [ ! -O ./testDir -o ! -d ./testDir -o ! -w ./testDir ]
答案 1 :(得分:0)
插入!在以下情况之后:
if ! [ -O ./testDir -a -d ./testDir -a -w ./testDir ]