![if else 语句在一行中使用 && 和 ||](https://linux22.com/image/36884/if%20else%20%E8%AF%AD%E5%8F%A5%E5%9C%A8%E4%B8%80%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8%20%26%26%20%E5%92%8C%20%7C%7C.png)
我想知道这两种方式是否等效:
第一的:
#!/bin/bash
if [ -x $FILE ]
then
echo "You have execution permission to a "$FILE""
else
echo "You don't have execution permission to a "$FILE""
fi
第二:
#!/bin/bash
[ -x $FILE ] && echo "You have execution permission to a "$FILE"" || echo "You don't have execution permission to a "$FILE""
答案1
这些结构通常并不等效,但在本例中它们是等效的。原因是echo
退出代码始终为 0。如果这是一个可以以大于零的代码退出的命令,那么“另一个分支”也将被执行。这在if
本案中是不可能的。