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

4954
yoyo_fun

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

5

2 ответа на вопрос

7
Ƭᴇcʜιᴇ007

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

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

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

command.exe -DeleteFiles

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

command.exe -ServerName my.server.com

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

Простое и эффективное объяснение. Вы могли бы даже поместить этот 2-й абзац в тег wiki для flag, поскольку в настоящее время у него нет описания, и это делает его немного менее двусмысленным. Broots Waymb 8 лет назад 0
1
mbigras

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

enter image description here

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

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

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