Рассмотреть возможность
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