Комментарии в многострочной команде bash

Этот файл сценария BASH с одиночной командой трудно понять, поэтому я хочу написать комментарий для каждого из действий:

echo 'foo' \ | sed 's/d/a/' \ | sed 's/e/b/' \ | sed 's/f/c/' \ > myfile 

(Sed – всего лишь пример, на самом деле это смесь greps и trs и awks)

Я не хотел бы дублировать строки или оставлять комментарии вдали от строки, к которой она относится.
Но в то же время BASH, похоже, не позволяет «встроенные» комментарии.

Любой элегантный способ решить эту проблему?

Поместите трубы в конце строки с комментариями после него:

 $ echo 'foo' | sed 's/f/a/' | # change first f to a sed 's/o/b/' | # change first o to b sed 's/o/c/' # change second o to c abc 

Если вы столкнулись с этим вопросом и хотите прокомментировать многопильную команду:

 $ echo 'foo' | sed -e 's/f/a/' `: # change first f to a` \ -e 's/o/b/' `: # change first o to b` \ -e 's/o/c/' `: # change second o to c` 

Если вы не делаете что-то действительно извращенное, как автоматическое комментирование, я не вижу причины предпочитать это по поводу ответа Микеля на трубку, но если вы действительно хотели:

 $ echo 'foo' | sed 's/f/a/' | `: # change first f to a` \ sed 's/o/b/' | `: # change first o to b` \ sed 's/o/c/' `: # change second o to c` 

или:

 $ echo 'foo' | sed 's/f/a/' `: # change first f to a` | sed 's/o/b/' `: # change first o to b` | sed 's/o/c/' `: # change second o to c` 

Источник: http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2005-07/0991.html

Ну, я предпочитаю этот путь,

 echo 'foo' | { # change first f to a # you can add more lines of comment on the command options sed 's/f/a/' } | { # change first o to b sed 's/o/b/' } | { # change second o to c sed 's/o/c/' } 
Interesting Posts

2016: 2 пользователя одновременно на одном ПК Win 7/8, 2-й пользователь редактирует только несколько файлов Excel?

Есть ли клиент WebSocket для .NET?

Как я могу запретить Visual Studio 2013 закрывать приложение IIS Express при завершении отладки?

Вложенная подкритерия jqgrid subgrid 4-го уровня всегда возвращает первый rowid подсерии

asp.net mvc decorate с несколькими enumsми

Как обеспечить запуск только одного экземпляра моего приложения?

Как установить местоположение по умолчанию и уровень масштабирования для google map api v2?

Удаление начальных и конечных пробелов из строки

«Diff» изображение с помощью ImageMagick

Почему я не могу создать вектор ссылок?

Каков порядок инициализации статической переменной в C #?

расширять имена файлов, которые имеют переменные среды на своем пути

Как правильно выровнять этот текст?

Когда следует использовать enumerateObjectsUsingBlock vs. for

Команда, чтобы избежать строки в bash

Давайте будем гением компьютера.