Bash разница необязательных параметров знак равенства '--stuff=42' или нет '--stuff 42'

Bash разница необязательных параметров знак равенства '--stuff=42' или нет '--stuff 42'

Я часто вижу команды, которые устанавливают значение необязательного параметра с помощью =, а иногда и простого пробела. Как это называется?

Пример обеих работающих команд:

firewall-cmd --permanent --add-service=http

и

firewall-cmd --permanent --add-service http

В чем разница между использованием знака равенства и его отсутствием?

решение1

Я не знаю, есть ли для этого формальное название; я обычно называю это --foo=bar«явным» и --foo bar«неявным», потому что в последнем случае вам нужно знать, как это реализовано, чтобы понять, означает ли это «установитьстрока вариант foo«запретить» или «установитьБулева опция footrueи передатьаргумент'бар'".

Следуя весьма разумному высказыванию Python, что «явное лучше неявного», я всегда предпочитаю --foo=bar.

Связанный контент