Поместите трубы в конце строки с комментариями после нее:
$ 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
Этот файл командного сценария 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
Well, I prefer this way,
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/' }