Перенос длинных команд bash в файлы сценариев

15

Как поместить длинную команду в следующую строку в файле сценария bash?

В качестве простого примера я хочу запустить команду pushd . && cd /foo/bar && ls && popd

С консоли я могу сделать это:

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

И это окутывает линию. Но тот же код в файле скрипта выдает ошибку.

Как обернуть эти строки, чтобы они были красиво отформатированы?

Джен С.
источник

Ответы:

16

Здесь отлично работает. Убедитесь, что обратная косая черта является самым последним символом в строке и что файл использует * nix окончания строки.

Игнасио Васкес-Абрамс
источник
Здесь тоже хорошо работает, но так же удаляет \ & & & и все и просто оставляя команды в отдельных строках ...
Брайан Кинц,
2
@elmugrat: Но тогда вы теряете условную цепочку.
Игнасио Васкес-Абрамс
Аааа, правда ... как-то забыл об этом.
Брайан Кинц
2
эта проблема заключалась в конце строки, что связано с тем, что я использую cygwin на windows, а не на другой ОС. Благодарю.
Джен С.