Я обновляю этот пост на основе комментариев и других ответов, поэтому комментарии до 22 мая 2020 года могут больше не применяться.
Bash не предоставляет встроенный синтаксис для многострочного комментария, но есть хаки, использующие существующий синтаксис bash, который «работает сейчас».
Лично я думаю, что самый простой (то есть наименее шумный, наименее странный, самый простой в наборе, наиболее явный) - это использовать цитируемый HEREDOC, но сделать очевидным, что вы делаете, и везде использовать один и тот же маркер HEREDOC:
<<'### BLOCK COMMENT'
line 1
line 2
line 3
line 4
### BLOCK COMMENT
Одиночные кавычки маркера HEREDOC позволяют избежать некоторых побочных эффектов синтаксического анализа оболочки, таких как странные ситуации, которые могут вызвать сбой или вывод, и даже анализ самого маркера. Таким образом, одинарные кавычки дают вам больше свободы для маркера комментариев открытия-закрытия. Например, следующее использует тройной хеш, который предлагает многострочный комментарий в bash. Это может привести к сбою сценария, если одинарные кавычки отсутствуют. Даже если вы удалите ###
, FOO{}
сценарий будет аварийно завершен (или приведет к неправильной замене, если нет set -e
), если бы не одиночные кавычки:
set -e
<<'### BLOCK COMMENT'
something something ${FOO{}} something
more comment
### BLOCK COMMENT
ls
Вы могли бы, конечно, просто использовать
set -e
<<'###'
something something ${FOO{}} something
more comment
###
ls
но цель этого определенно менее ясна для читателя, незнакомого с этим обманом.
В настоящее время любой хороший редактор позволяет вам нажать ctrl- / или подобный, чтобы отменить / прокомментировать выбор. Все определенно понимают это:
# something something ${FOO{}} something
# more comment
# yet another line of comment
хотя по общему признанию, это не так удобно, как блок комментариев выше, если вы хотите заново заполнить свои абзацы.
Конечно, есть и другие методы, но, похоже, не существует «обычного» способа сделать это. Было бы хорошо, если бы ###>
и ###<
можно было добавить к bash, чтобы указать начало и конец блока комментариев, кажется, что это может быть довольно просто.