Способ создания многострочных комментариев в Bash?
недавно я начал изучать сценарий оболочки, и я хотел бы иметь возможность комментировать набор строк в сценарии оболочки. Я имею в виду, как это в случае C/Java :
/* comment1
comment2
comment3
*/`
Как я мог это сделать?
4 ответов
многострочный комментарий в 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 должен быть процитирован, чтобы избежать некоторых побочных эффектов синтаксического анализа оболочки. Я нашел это необходимым, только если вы используете backquotes в своем комментарии. Даже с set -o verbose
и $variables
упоминается в комментарии, цитируя маркер не обязательный. YMMV.
если вы используете : '
подход, упомянутый в другом ответе, затем документируйте, что это такое через мета-комментарий, используйте тот же мета-комментарий везде и не забудьте удвоить любые вхождения '
в комментарии (редактор раскраски синтаксиса сделает это очевидным):
: '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.
////
как программист, последовательность косых черт немедленно регистрируется в моем мозгу как комментарий (хотя косые черты обычно используются для комментариев строк).