Я оновлюю цю публікацію на основі коментарів та інших відповідей, тому коментарі до 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, щоб вказати початок і кінець блоку коментарів, здається, що це може бути досить просто.