Sto aggiornando questo post in base a commenti e altre risposte, quindi i commenti precedenti al 22 maggio 2020 potrebbero non essere più applicabili.
Bash non fornisce una sintassi integrata per i commenti su più righe ma ci sono hack che usano la sintassi bash esistente che "sembra funzionare ora".
Personalmente penso che il più semplice (cioè meno rumoroso, meno strano, più facile da digitare, più esplicito) sia usare un HEREDOC citato, ma rendere ovvio ciò che stai facendo e usare lo stesso marcatore HEREDOC ovunque:
<<'### BLOCK COMMENT'
line 1
line 2
line 3
line 4
### BLOCK COMMENT
La virgoletta singola del marcatore HEREDOC evita alcuni effetti collaterali dell'analisi shell, come strane sostituzioni che potrebbero causare arresti anomali o output e persino l'analisi del marcatore stesso. Quindi le virgolette singole ti danno più libertà sul marker di commento aperto-chiuso. Ad esempio, ciò che segue usa un triplo hash che suggerisce un commento multilinea in bash. Ciò causerebbe l'arresto anomalo dello script se le singole virgolette fossero assenti. Anche se lo rimuovessi ###
, FOO{}
si bloccherebbe lo script (o causerebbe la stampa di una sostituzione errata in set -e
caso contrario) se non fosse per le virgolette singole:
set -e
<<'### BLOCK COMMENT'
something something ${FOO{}} something
more comment
### BLOCK COMMENT
ls
Ovviamente potresti semplicemente usare
set -e
<<'###'
something something ${FOO{}} something
more comment
###
ls
ma l'intento è decisamente meno chiaro per un lettore che non ha familiarità con questo trucco.
Oggi qualsiasi buon editor ti consente di premere ctrl- / o simili, per annullare / commentare la selezione. Tutti lo capiscono sicuramente:
# something something ${FOO{}} something
# more comment
# yet another line of comment
sebbene sia vero, ciò non è altrettanto conveniente del commento di blocco sopra se si desidera riempire nuovamente i paragrafi.
Esistono sicuramente altre tecniche, ma non sembra esserci un modo "convenzionale" per farlo. Sarebbe bello se ###>
e ###<
potesse essere aggiunto a bash per indicare l'inizio e la fine del blocco dei commenti, sembra che potrebbe essere piuttosto semplice.