Ritenere
echo \ # this is a comment
foo
Questo da:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Dopo alcune ricerche sul web, ho trovato una soluzione di DigitalRoss sul sito sorella Stack Overflow. Quindi uno può fare
echo `: this is a comment` \
foo
o in alternativa
echo $(: this is a comment) \
foo
Tuttavia, DigitalRoss non ha spiegato perché queste soluzioni funzionano. Gradirei una spiegazione. Ha risposto con un commento:
C'era un
goto
comando shell che si ramificava su etichette specificate come:
qui. Nongoto
c'è più ma puoi ancora usare la: whatever
sintassi ...:
è una specie di commento analizzato ora.
Ma vorrei maggiori dettagli e contesto, inclusa una discussione sulla portabilità.
Certo, se qualcuno ha altre soluzioni, anche questo sarebbe buono.
Vedi anche la domanda precedente Come commentare i comandi multilinea negli script di shell? .
Porta a casa il messaggio dalla discussione qui sotto. L' `: this is a comment`
è solo una sostituzione di comando. L'output di : this is a comment
non è nulla e viene sostituito al posto di `: this is a comment`
.
Una scelta migliore è la seguente:
echo `# this is a comment` \
foo