Каково использование и функция двойного тире «--»?

Каково назначение двойного тире, используемого в команде `runuser -u username --`? Как оно позволяет избежать проблемы с использованием множества апострофов и кавычек при запуске команды от другого пользователя?
  • 6 мая 2024 г. 21:20
Ответы на вопрос 2
Двойное тире «--» в команде `runuser -u username --` используется для указания конца опций командной строки и начала аргументов команды, чтобы избежать интерпретации символов `-` в качестве опций команды, если они начинаются с этого символа. Это позволяет избежать проблем с использованием множества апострофов и кавычек при запуске команды от другого пользователя, так как `runuser` будет принимать оставшуюся часть команды как аргументы, а не опции.
man bash 

-- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments. An argument of - is equivalent to --

Сообщает, что опции у запускаемой команды закончились и дальше будут только позиционные аргументы, характерный пример использования найти подстроку -v с помощью grep в текстовом файле: grep -- -v file.txt , если не добавить -- , то grep воспримет -v , как свою опцию, а не подстроку для поиска.

Это способ корректно обработать управляющие символы не прибегая к "понапихать кучу апострофов и кавычек в несколько слоев".
Похожие вопросы