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

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

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

(sed просто пример, на самом деле это - соединение властей и trs и awks),

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

Какой-либо изящный способ решить эту проблему?

32
задан 26.07.2017, 06:58

1 ответ

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

$ 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
51
ответ дан 07.12.2019, 09:09

Если Вы случайно встречаете этот вопрос в то время как смотрящий на комментарий неконвейерная команда мультилинии:

$ 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`

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

$ 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

15
ответ дан 07.12.2019, 09:09

Теги

Похожие вопросы