A && B || C is not if-then-else. C may run when A is true
Je comprends bien le message, mais je ne suis pas sur de comprendre pourquoi (quand, Comment) C peut être exécuté quand A est vrai.
Je suppose que cette mise en garde peut signifier que C teste le résultat de B et non de A comme le ferait if-the-else.
Lorsque B est echo " $Foo", même si Foo n’existe pas, la valeur de retour reste vraie.
Mais je suppose que si B est une commande qui se termine par faux (valeur > 0), dans ce cas C s’exécuterait?
Jusqu’ici, j’ai toujours eu la chance de ne pas rencontrer ce problème. Sans doute car cette forme n’est utilisée que pour une commande simple comme «echo».
Est-ce bien l’explication de cette mise en garde (de shellcheck) ?