Способ создания многострочных комментариев в Bash?


Я недавно начал изучать сценарий оболочки, и я хотел бы иметь возможность комментировать набор строк в сценарии оболочки. Я имею в виду, как это в случае C/Java :

/* comment1
   comment2 
   comment3
*/`

Как я мог это сделать?

4 70

4 ответа:

использовать : ' открыть и ' закрыть.

например:

: '
This is a
very neat comment
in bash
'

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

: <<'END_COMMENT'
This is a heredoc (<<) redirected to a NOP command (:).
The single quotes around END_COMMENT are important,
because it disables variable resolving and command resolving
within these lines.
comment1
comment2 
comment3
END_COMMENT

Bash не предоставляет встроенный, но есть хаки, использующие существующий синтаксис bash. Самый простой-использовать HEREDOC, но сделать это очевидным, что вы делаете, и использовать один и тот же маркер HEREDOC везде:

<< --MULTILINE-COMMENT--
line 1
line 2

line 3
line 4
--MULTILINE-COMMENT--

в некоторых сообщениях упоминается, что маркер HEREDOC должен быть процитирован, чтобы избежать некоторых побочных эффектов синтаксического анализа оболочки. Я только нашел это необходимым, если вы используете обратные кавычки в своем комментарии. Даже с set -o verbose и $variables упоминается в комментарии, цитируя маркер не обязательный. МММ.

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

: 'Multiline comment:
line 1
line 2 we''re going to try this eventually
line 3
'

оба хаки, чтобы они могли сломать скрипты в будущем.

конечно, есть и другие методы, но, похоже, нет "обычного" способа сделать оно.

после прочтения других ответов здесь я придумал ниже, что ИМХО делает его очень ясно, что это комментарий. Особенно подходит для использования в скрипте информация:

<< ////

Usage:
This script launches a spaceship to the moon. It's doing so by 
leveraging the power of the Fifth Element, AKA Leeloo.
Will only work if you're Bruce Willis or a relative of Milla Jovovich.

////

как программист, последовательность косых черт немедленно регистрируется в моем мозгу как комментарий (хотя косые черты обычно используются для комментариев строк).