Рассмотреть возможность
echo \ # this is a comment
foo
Это дает:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
После некоторых поисков в Интернете я нашел решение DigitalRoss на дочернем сайте Stack Overflow. Так можно сделать
echo `: this is a comment` \
foo
или в качестве альтернативы
echo $(: this is a comment) \
foo
Однако DigitalRoss не объяснил, почему эти решения работают. Буду признателен за объяснение. Он ответил с комментарием:
Раньше была
gotoкоманда оболочки, которая разветвлялась на метки, указанные:здесь.gotoУшел , но вы все еще можете использовать: whateverсинтаксис ...:это своего рода анализируемой комментарий в настоящее время.
Но мне бы хотелось больше подробностей и контекста, включая обсуждение переносимости.
Конечно, если у кого-то есть другие решения, это тоже будет хорошо.
Смотрите также предыдущий вопрос Как комментировать многострочные команды в скриптах оболочки? ,
Возьмите домой сообщение из обсуждения ниже. Это `: this is a comment`просто замена команды. Результат : this is a comment- ничто, и это помещается вместо `: this is a comment`.
Лучший выбор следующий:
echo `# this is a comment` \
foo