Aktualizuję ten post na podstawie komentarzy i innych odpowiedzi, więc komentarze sprzed 22 maja 2020 roku mogą już nie mieć zastosowania.
Bash nie zapewnia wbudowanej składni komentarzy wieloliniowych, ale istnieją hacki wykorzystujące istniejącą składnię bash, która „działa teraz”.
Osobiście uważam, że najprostszym (tj. Najmniej hałaśliwym, najmniej dziwnym, najłatwiejszym do pisania, najbardziej wyraźnym) jest użycie cytowanego HEREDOC, ale wyraź to, co robisz, i używaj tego samego markera HEREDOC wszędzie:
<<'### BLOCK COMMENT'
line 1
line 2
line 3
line 4
### BLOCK COMMENT
Pojedynczy cytat znacznika HEREDOC pozwala uniknąć niektórych skutków ubocznych analizy powłoki, takich jak dziwne zmiany, które spowodowałyby awarię lub wynik, a nawet analizę samego markera. Tak więc pojedyncze cudzysłowy dają więcej swobody na znaczniku komentarza „otwórz i zamknij”. Na przykład poniżej używa potrójnego skrótu, który sugeruje wieloliniowy komentarz w bash. Spowodowałoby to awarię skryptu, gdyby pojedyncze cytaty były nieobecne. Nawet jeśli usuniesz ###
, FOO{}
spowoduje to awarię skryptu (lub spowoduje wydrukowanie złej substytucji, jeśli nie set -e
), gdyby nie pojedyncze cytaty:
set -e
<<'### BLOCK COMMENT'
something something ${FOO{}} something
more comment
### BLOCK COMMENT
ls
Oczywiście możesz po prostu użyć
set -e
<<'###'
something something ${FOO{}} something
more comment
###
ls
ale cel tego jest zdecydowanie mniej jasny dla czytelnika niezaznajomionego z tą sztuczką.
Obecnie każdy dobry edytor pozwala nacisnąć Ctrl- / lub podobny, aby anulować / skomentować wybór. Wszyscy na pewno to rozumieją:
# something something ${FOO{}} something
# more comment
# yet another line of comment
chociaż wprawdzie nie jest to tak wygodne jak powyższy komentarz blokowy, jeśli chcesz ponownie wypełnić akapity.
Z pewnością istnieją inne techniki, ale wydaje się, że nie ma „konwencjonalnego” sposobu na zrobienie tego. Byłoby miło, gdyby ###>
i ###<
mógł zostać dodany do bash, aby wskazać początek i koniec bloku komentarza, wydaje się, że może być całkiem prosty.