6

Я слышу эти два термина взаимозаменяемо, и мне интересно, есть ли разница между ними, например, флаги для одной буквы или флаги после одной черты.

2 ответа2

8

Вы, вероятно, найдете, что "аргументы", "опции" и "переключатели" также часто используются взаимозаменяемо в этом контексте.

"Флаги", в частности, являются логическими аргументами, устанавливаемыми простым включением аргумента командной строки, без дополнительных данных, необходимых или разрешенных для аргумента. Если вы включаете аргумент / опцию / флаг, он считается "истинным", а если вы его исключаете, он считается "ложным".

Пример аргумента типа флага:

command.exe -DeleteFiles

Пример аргумента без флага:

command.exe -ServerName my.server.com

Больше информации

1

Согласно Build Awesome Applications из командной строки в Ruby 2, основное различие заключается в следующем: switch не принимает аргументы, а flag -. Цитирую прямо из книги (стр. 15):

Как правило, если переключатель находится в длинной форме (например, --foo), который включает «включение» некоторого поведения, есть также другой переключатель, которому предшествует no- (например, --no-foo), который выключает «выключение» поведение.

Наконец, флаги длинной формы принимают аргумент через знак равенства, тогда как в короткой форме флага знак равенства обычно не используется. Например, команда curl , которая выполняет HTTP-запросы, предоставляет флаги краткой и длинной форм для указания метода HTTP-запроса: -X и --request соответственно. В следующем примере вызовов показано, как правильно передавать аргументы этим флагам:

curl -X POST http://www.google.com
curl --request=POST http://www.google.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .