关于||和&&在shell中的妙用

在shell中用善用||和&&可以简化shell的编写

1)op1||op2

这个是“或”操作,op1,op2分别表示:操作1,操作2

整个表达式从左至右,只要op1不为真,就继续op2,相当于

if ! [[ op1 ]];then
    op2
fi

2)    op1&&op2

这个是“与”操作,op1,op2分别表示:操作1,操作2

整个表达式从左至右,只要op1为真,就继续op2,相当于

if [[ op1 ]];then
    op2
fi

所以,有时候用||和&&可以减少if else语句

比如如下一段

cd /var/backups || exit 0
for FILE in passwd group shadow gshadow; do
        test -f /etc/$FILE              || continue
        cmp -s $FILE.bak /etc/$FILE     && continue
        cp -p /etc/$FILE $FILE.bak && chmod 600 $FILE.bak
done

这是从系统中定时任务中找到的一个定时备份/etc/passwd,group,shadow,gshadow文件的例子

虽然没有用到if else语句,但是同样达到了if else的效果,而且整个shell显得更加简洁

上一篇:练习:求字符串中最长的表达式,并计算结果--python实现


下一篇:四则运算1