Rozważać
echo \ # this is a comment
foo
To daje:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Po kilku poszukiwaniach w Internecie znalazłem rozwiązanie firmy DigitalRoss na siostrzanej stronie Stack Overflow. Więc można to zrobić
echo `: this is a comment` \
foo
lub alternatywnie
echo $(: this is a comment) \
foo
Jednak DigitalRoss nie wyjaśnił, dlaczego te rozwiązania działają. Byłbym wdzięczny za wyjaśnienie. Odpowiedział komentarzem:
Kiedyś było
goto
polecenie powłoki, które rozgałęziało się na etykiety określone jak:
tutaj.goto
Zniknął, ale nadal można używać: whatever
składni ...:
jest rodzajem parsed komentarz teraz.
Chciałbym jednak więcej szczegółów i kontekstu, w tym omówienie przenośności.
Oczywiście, jeśli ktoś ma inne rozwiązania, to też byłoby dobrze.
Zobacz także wcześniejsze pytanie Jak komentować polecenia wieloliniowe w skryptach powłoki? .
Weź wiadomość do domu z dyskusji poniżej. To `: this is a comment`
tylko podstawienie polecenia. Wynikiem : this is a comment
jest nic, a to zostaje zastąpione `: this is a comment`
.
Lepszym wyborem jest:
echo `# this is a comment` \
foo