GNU/Linux >> Tutoriels Linux >  >> Linux

Continuation de la ligne bash après &&et || Documenté?

J'ai beaucoup vu cette construction dans des scripts et je l'ai utilisée moi-même, mais cela me dérange de ne pas pouvoir la trouver dans la documentation.

Exemple :

[ -f file1 ] &&
[ -f file2 ] &&
echo "Both files exist." ||
echo "One or the other file doesn't exist."

Cela pourrait également être fait avec des barres obliques inverses avant les nouvelles lignes, comme mentionné dans man bash :

If a <newline> pair appears,  and  the  backslash  is  not
itself  quoted,  the <newline> is treated as a line continuation (that
is, it is removed from the input stream and effectively ignored).

Exemple :

[ -f file1 ] && 
[ -f file2 ] && 
echo "Both files exist." || 
echo "One or the other file doesn't exist."

… mais cela ne semble pas nécessaire. La première version ci-dessus fonctionne même sans les barres obliques inverses.

Où puis-je trouver cela dans man bash ? (Aussi, est-ce bash spécifique ou compatible POSIX ?)

Réponse acceptée :

Une nouvelle ligne est ignorée dans quelques contextes où il y a manifestement une commande non terminée. Ces contextes incluent après un opérateur de contrôle (&& , || , | , & , ; , ;; , mais pas ! ).

Je ne vois pas cela documenté dans le manuel bash.

Dans POSIX, il est spécifié via les règles de grammaire. Partout où les règles ont linebreak , vous pouvez avoir zéro ou plusieurs sauts de ligne.


Linux
  1. Différence entre " et " sur la ligne de commande (bash) ? ?

  2. Des chaînes sont manquantes après la concaténation de deux chaînes variables ou plus dans Bash ?

  3. Rédaction de commentaires dans des scripts bash :commentaires sur une seule ligne, en ligne et multilignes

  4. Exemples de boucle Bash For et de boucle While

  5. Dans Bash, comment ajouter une chaîne après chaque ligne dans un fichier ?

Comment commenter dans Bash

Syntaxe de l'instruction bash case et exemples

Comment lire des fichiers ligne par ligne dans Bash

Comment lire un fichier ligne par ligne dans Bash

Bash pause et continuer

Commande de sortie Bash et codes de sortie