Самый универсальный и безопасный метод - поместить комментарий в цитату
here-document
, вот так:
<<"COMMENT"
This long comment text includes ${parameter:=expansion}
`command substitution` and $((arithmetic++ + --expansion)).
COMMENT
Кавычки COMMENT
, указанные выше, необходимы для предотвращения параметра
расширение, подстановка команд и арифметическое расширение, которое произойдет
в противном случае, как указано в руководстве Bash , а стандарт оболочки POSIX указывает .
В случае, приведенном выше, отсутствие кавычек COMMENT
приведет к переменной parameter
присваивается текст expansion
, если он был пуст или не задан, выполнение команды
command substitution
, увеличивая переменную arithmetic
и уменьшая
переменная expansion
.
Сравнение других решений с этим:
Использование if false; then comment text fi
требует, чтобы текст комментария был
синтаксически правильный Bash-код, тогда как естественные комментарии часто нет, если
только для возможных несбалансированных апострофов. То же самое касается : || { comment text }
построить.
Помещение комментариев в аргумент команды void с одинарными кавычками, как в :'comment
text'
, имеет недостаток невозможности включать апострофы. Дважды цитируемый
аргументы, как в :"comment text"
, по-прежнему подлежат расширению параметра,
подстановка команд и арифметическое расширение, то же, что и без кавычек
здесь содержание документа и может привести к побочным эффектам, описанным выше.
Использование сценариев и средств редактирования для автоматического префикса каждой строки в
Блок с '#' имеет некоторые достоинства, но не совсем отвечает на вопрос.