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?

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.


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.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.