if else ステートメントは && と || を 1 行に使用します。

if else ステートメントは && と || を 1 行に使用します。

これら2つの方法が同じかどうかを知りたいです。

最初:

#!/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この場合は不可能です。

関連情報