Какие черты в мерзавце? Такие как: -a -b -p - PullRequest
1 голос
/ 17 февраля 2012

Я вообще знаю, что они делают, но откуда они?У них есть официальное имя?Я видел похожие буквы, за которыми часто следуют тире в командах оболочки.

Я не смог найти ответ после некоторого быстрого поиска, так как не могу найти "-a", -b "и т. Д., Так как тире не обнаруживается поисковыми системами.

Редактировать: Я нашел поисковую систему для поиска таких вещей: symbolhound

Ответы [ 4 ]

1 голос
/ 17 февраля 2012

Это так называемые переключатели. Они чрезвычайно распространены в командной строке. Большинство программного обеспечения с открытым исходным кодом (например, git) используют такие библиотеки, как getopt, для их чтения. Формат очень предсказуемый:

  • -a [VALUE] (для однобуквенных переключателей)
  • - имя [= VALUE] (для прописанных переключателей)

В обоих этих случаях VALUE может или не может потребоваться в зависимости от переключателя. В вашем примере они не используются. Чтение man-страниц или запуск command --help обычно скажут вам, какие переключатели поддерживаются.

1 голос
/ 17 февраля 2012

Их часто называют опциями; инструменты программирования, такие как getopt и popt, анализируют их более или менее стандартным способом. Вы столкнетесь с ними повсюду в Unix, например, стандартная опция ls -l для перечисления в «длинной форме», а не в краткой форме.

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

0 голосов
/ 17 февраля 2012

Помимо того, что было объяснено в других ответах, обратите внимание, что есть команда git help, которая предоставит информацию о параметрах для всех подкоманд.

Например, в выводе для git help commit вы увидите следующее:

OPTIONS

  -a, --all
      Tell the command to automatically stage files that have been modified and deleted, but new files you have not
      told git about are not affected.
0 голосов
/ 17 февраля 2012

Пункты отмечают опции для команды. Итак, -a - это одна опция, а -b - другая опция.

Причина дефиса в том, что вы и команда знаете, что это опция. Так, например,

git commit --amend main.c

Тире до --amend проясняет, что --amend - это опция, тогда как main.c не имеет тире, поэтому это обычный аргумент.

И это так почти со всеми командами оболочки. Подробнее см. на справочной странице .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...