Я хотел бы иметь возможность закомментировать один флаг в одной строке команды. У Bash только есть from # till end-of-line
комментарии. Я смотрю на трюки, как:
ls -l $([ ] && -F is turned off) -a /etc
Это некрасиво, но лучше, чем ничего. Есть ли способ лучше?
Кажется, работает следующее, но я не уверен, является ли оно переносимым:
ls -l `# -F is turned off` -a /etc
#comment
Трюк также упоминается здесь: stackoverflow.com/questions/9522631/...${IFS#comment}
представленный @pjh в комментариях. Никакая вложенная оболочка не вызывается.Ответы:
Мой любимый это:
Комментирование в скрипте Bash
источник
$(#comment)
не работает.)
как часть самого комментария. Большинство проблем bash связано с ретро-совместимостью со старыми версиями, и одной из распространенных стратегий является использование самого старого возможного решения.true && `# comment` && true
это правильное выражение. Реальный комментарий сгенерирует что-то вроде:syntax error near unexpected token
&& '`Я считаю, что проще всего (и наиболее читабельно) просто скопировать строку и закомментировать исходную версию:
источник
$(: ...)
немного менее уродливо, но все же не хорошо.источник
$(: ...)
синтаксис на самом деле, кажется, не позволяет встраивать комментарии: тогдаecho "foo" `# comment` "bar"
как комментарий заканчивается на втором обратном трюке, предполагаемый эквивалентecho "foo" $(: # comment) "bar"
ничего не анализирует за#
.Как насчет хранения его в переменной?
источник
Вот мое решение для встроенных комментариев между несколькими конвейерными командами.
Пример некомментированного кода:
Решение для комментария к трубе (с использованием вспомогательной функции):
Или, если вы предпочитаете, вот то же решение без вспомогательной функции, но оно немного сложнее:
источник
Большинство команд позволяют аргументам приходить в любом порядке. Просто переместите закомментированные флаги в конец строки:
Затем, чтобы снова включить его, просто раскомментируйте и удалите текст:
источник
#
без единого пробела после команды. Спасибо!Если вы знаете, что переменная пуста, вы можете использовать ее как комментарий. Конечно, если он не пустой, это испортит вашу команду.
§ 10.2. Подстановка параметров
источник
${name:=comment}
чтобы быть в безопасности.Для отключения такой части команды, как
a && b
, я просто создал пустой скрипт,x
который находится в пути, поэтому я могу делать такие вещи, как:когда мне нужно построить, и
когда нет (используя Ctrl + AиCtrl + E для перехода в начало и конец).
Как отмечено в комментариях, другой способ сделать это - встроенный в Bash
:
вместоx
:источник
:
Как в:string; of; commands; : disabled; enabled;
Если комментарий стоит сделать, он, вероятно, может идти в конце строки или в отдельной строке. Я редко нахожу потребность в комментариях внутри строки с кодом до и после комментария на любом языке.
О, есть одно исключение, это диалект SQL, который я обычно использую, который использует '{comments}'. Иногда я буду писать:
Но даже это натянуто.
источник