Я видел много уроков, которые используют --
команды после. Что-то вроде этого:
command --
Что это --
значит?
Я видел много уроков, которые используют --
команды после. Что-то вроде этого:
command --
Что это --
значит?
Ответы:
--
Используется , чтобы указать конец параметров командной строки. Это позволяет вам использовать аргументы, начинающиеся с --
. Например, если вы создаете файл с именем --foo
:
$ > '--foo'
$ ls
--foo
А затем попытайтесь удалить его, rm
подумайте, что вы даете этому аргумент:
$ rm --foo
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.
Одним из способов обойти это является использование --
:
$ rm -- --foo
Это обычная практика, рекомендуемая POSIX , поэтому она поддерживается многими программами.
rm
программы и многих POSIX-совместимых утилит. См. Положение 10 . Чтобы на самом деле убедиться, что это не Bash, выполняющий работу (и это не имеет смысла), просто создайте небольшой скрипт с помощью just printf '> %s <\n' "$@"
и запустите его с помощью --
.
--
, но, конечно, это просто потому, что соответствующий модуль Perl ( getopts
) также поддерживает его. Вы совершенно правы, я просто быстро искал man bash
, видел раздел, который я процитировал, но не заметил, что он находится в разделе «параметры командной строки». Спасибо за исправление, ответ отредактирован.
Большинство команд будут использовать -, чтобы сообщить команде, что другие параметры должны обрабатываться по-разному. Одним из примеров является rm - --filename, указанное выше. Другой пример, такой скрипт, как 'startx', будет интерпретировать сам все до - и передавать все после него на X-сервер.