Quebrando comandos longos do bash em arquivos de script

15

Como você agrupa um comando longo para a próxima linha em um arquivo de script bash?

Como um exemplo simples, eu quero executar o comando pushd . && cd /foo/bar && ls && popd

No console, eu posso fazer isso:

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

E isso envolve a linha. Mas o mesmo código em um arquivo de script produz um erro.

Como você agrupa essas linhas para serem bem formatadas?

Jen S.
fonte

Respostas:

16

Funciona bem aqui. Verifique se a barra invertida é o último caractere da linha e se o arquivo usa terminações de linha * nix.

Ignacio Vazquez-Abrams
fonte
Funciona bem aqui também, mas o mesmo acontece com a remoção do \ 's e &&' s completamente e apenas deixando os comandos em linhas separadas ...
Brian Kintz
2
@elmugrat: Mas então você perde o encadeamento condicional.
Ignacio Vazquez-Abrams
Ahhh verdade ... de alguma forma se esqueceu disso.
Brian Kintz 24/01
2
Esse problema foi o final da linha, devido ao fato de eu estar usando o cygwin no Windows e não em um sistema operacional diferente. Obrigado.
Jen S.