Запретить исполняемым и встроенным функциям интерпретировать строковый аргумент, начинающийся с -, как переключатель?

Мой хостинг-провайдер не использует обычную установку Debian grub, где GRUB _DEFAULT объявлен в файле /etc/default/grub. Мне пришлось вручную отредактировать файл /boot/grub/menu.lstи изменить директиву defaultна 0.

Обязательно спросите у своего хоста, есть ли у него альтернативная установка для grub.

-1
08.11.2019, 04:54
2 ответа

Для grepиспользуйте -e, чтобы отметить шаблоны регулярных выражений:

grep -e "-something" filename.txt

Для общих встроенных -ins use --во многих утилитах он отмечает «конец опций» (, но не в GNU grep ).

5
28.01.2020, 05:06

Для grepвы также можете изменить регулярное выражение, чтобы оно не начиналось с дефиса, используя простой список символов:

 grep '[-]something'

Этот трюк^Wметод традиционно использовался, чтобы избежать ложных совпадений вps:

ps -f | grep myprog 
# lists both the process(es) running myprog AND the grep process
# making it harder to do things like choose the right process to kill(1)

ps -f | grep '[m]yprog'
# lists only the 'real' processes because [m]yprog matches "myprog" 
# but [m]yprog does NOT match "grep [m]yprog"

, но в современную эпоху проще использоватьpgrep(или pkill).

2
28.01.2020, 05:06

Теги

Похожие вопросы