#linux #bash #debian #grep
$ nginx -V 2>&1 | grep -- '--with-debug' Не совсем понятно что означает такой синтаксис команды grep. А именно первые два тире --. Может опечатка? Кажется врубился, это хак чтобы защитить шаблон начинающийся на -. Вот нормальная человеческая версия: $ nginx -V 2>&1 | grep -e '--with-debug'
Ответы
Ответ 1
это синтаксическая конструкция, описанная в стандарте posix для всех программ, следующих этому стандарту (а не только для конкретной программы grep): Guideline 10: The first -- argument that is not an option-argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character. мой вольный перевод: первый аргумент --, не являющийся аргументом-опцией (т.е., насколько я понимаю, частью синтаксиса опции: -опция аргумент-этой-опции), должен быть воспринят как разделитель, обозначающий конец списка опций. любой последующий аргумент следует рассматривать как операнд, даже если он начинается с символа '-'. в вашем примере -- используется для того, чтобы программа grep не пыталась интерпретировать строку '--with-debug' как опцию, а считала её аргументом, т.е., в данном случае, регулярным выражением для поиска. кстати: два аргумента -e --with-debug будут восприняты программой grep абсолютно точно так же, потому что опция -e подразумевает наличие следующего аргумента — регулярного выражения.
Комментариев нет:
Отправить комментарий