Вы можете использовать обратную косую черту, чтобы разбить команды на несколько строк.
for f in dev/scss/*.scss; do cat "$f"; echo; echo; done \
| additional-processing
После определенных операторов, таких как &&
, ||
и |
, обратная косая черта не требуется.Баш знает, что команда не закончена.Если вы поместите |
в предыдущую строку, вам не понадобится обратная косая черта.
for f in dev/scss/*.scss; do cat "$f"; echo; echo; done |
additional-processing
Таким образом, вы можете объединить большое количество команд.
for f in dev/scss/*.scss; do cat "$f"; echo; echo; done |
foo |
bar |
baz
Еслицикл становится громоздким, вы должны также рассмотреть возможность его оборачивания в вызове функции.Мне нравится такой подход, потому что это означает, что вам не нужно втискивать все в небольшое количество строк.Вы можете дать петле больше передышки с каждой командой на отдельной строке.
loop() {
for f in dev/scss/*.scss; do
cat "$f"
echo
echo
done
}
Это позволяет сократить ваш конвейер до чего-то более читабельного типа:
loop | foo | bar | baz
PS Всегда заключайте в кавычки расширения переменных.Введите cat "$f"
, чтобы имена файлов с пробелами и другими специальными символами обрабатывались правильно.