si autre instruction sur une ligne en utilisant && et ||

J'aimerais savoir si ces 2 moyens sont équivalents:

Premier:

#!/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 

Seconde:

 #!/bin/bash [ -x $FILE ] && echo "You have execution permission to a "$FILE"" || echo "You don't have execution permission to a "$FILE"" 

Les structures ne sont pas équivalentes en général mais dans ce cas elles le sont. La raison en est que echo toujours le code de sortie 0. Si c'était une command qui pouvait sortir avec un code supérieur à zéro, alors "l'autre twig" serait aussi exécutée. Ceci est impossible dans le cas if .