Emballage de commandes bash longues dans des fichiers de script

15

Comment encapsuler une commande longue à la ligne suivante dans un fichier de script bash?

Comme exemple simple, je veux exécuter la commande pushd . && cd /foo/bar && ls && popd

Depuis la console, je peux faire ceci:

pushd . \
&& cd /foo/bar \
&& ls \
&& popd

Et cela clôt la ligne. Mais le même code dans un fichier de script produit une erreur.

Comment encapsulez-vous ces lignes pour qu'elles soient bien formatées?

Jen S.
la source

Réponses:

16

Fonctionne bien ici. Assurez-vous que la barre oblique inversée est le tout dernier caractère de la ligne et que le fichier utilise des fins de ligne * nix.

Ignacio Vazquez-Abrams
la source
Fonctionne bien ici aussi, mais il en va de même pour supprimer les \ et && et laisser les commandes sur des lignes séparées ...
Brian Kintz
2
@elmugrat: Mais alors vous perdez le chaînage conditionnel.
Ignacio Vazquez-Abrams le
Ahhh vrai ... en quelque sorte oublié ça.
Brian Kintz
2
ce problème était les fins de ligne, ce qui est dû au fait que j'utilise cygwin sur Windows et non sur un système d'exploitation différent. Merci.
Jen S.