Есть ли разница между флагом командной строки и параметром командной строки?

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

2 ответа

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

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

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

command.exe -DeleteFiles

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

command.exe -ServerName my.server.com

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

Согласно Build Awesome Command-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
Другие вопросы по тегам