Способ создания многострочных комментариев в 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 должен быть процитирован, чтобы избежать некоторых побочных эффектов синтаксического анализа оболочки. Я только нашел это необходимым, если вы используете обратные кавычки в своем комментарии. Даже с
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. ////
как программист, последовательность косых черт немедленно регистрируется в моем мозгу как комментарий (хотя косые черты обычно используются для комментариев строк).