Что означают «-» и «-» на любой Unix оболочке?
--
и -
не имеют значения в оболочке.
Это просто параметры для команды docker
.
Если вы хотите узнать, какое значение они имеют для команды docker
, вам придется искать их в man docker
.
Нет абсолютно никакой разницы между --name
, -e
, foo
или --!--!--!--
. Все они являются просто именами параметров, -
- это такая же часть имени, как n
или e
.
--name
- это имя параметра, -e
- это имя параметра, run
- это имя параметра.
Что я не получаю, так это то, почему я использую --
для параметра имени и -
для параметра пароля.
Краткий ответ: потому что именно это автор команды docker
выбрал для вызова этих параметров.
Немного более длинный ответ заключается в том, что существуют некоторые соглашения, согласно которым некоторые команды следовать в некоторой степени. В частности, docker
, кажется, следует этим трем очень распространенным соглашениям:
- " подкоманда ": это соглашение, которое было популяризировано такими инструментами, как
iproute2
и git
, которые имеют одну команду «master», первым параметром которой является имя «подкоманды» (которая может иметь еще больше подкоманд), например: ip route
, ip addr add
, git commit
, git status
, docker run
. - " короткие опции ": это соглашение столь же старо, как Unix, может быть, даже старше. Опцией должен быть один буквенный символ c, которому предшествует
-
. Несколько последовательных вариантов могут быть объединены. Примеры: mkdir -p
, ls -la
. - " long options ": это соглашение взято из системы GNU. Опции - это целые описательные слова, которым предшествует
--
. Пример: ls --color
Но я хотел бы повторить, потому что очень важно понять: это не имеет ничего общего с оболочкой. Эти опции обрабатываются только docker
и docker
. Параметры были бы точно такими же, если бы вы вызывали docker
из командной строки Windows или из Python: нигде не было видно Unix оболочки.