Есть ли скрытый список зарезервированных имен для коротких опций POSIX? - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь определить, существует ли список «зарезервированных» имен для коротких опций в стандарте POSIX.Может ли это быть спецификацией, соглашением или обоими.

Единственное реальное зарезервированное короткое имя опции, которое мне удалось найти, это -W

см. https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html

Рекомендация 3. Каждое имя параметра должно представлять собой один буквенно-цифровой символ (классификация символов alnum) из переносимого набора символов.Опция -W (заглавная-W) должна быть зарезервирована для опций вендора.

Я полагаю, что строгое соглашение составляет -h, что сокращенно от --help.Другой, более слабый, кажется, -n для --dry-run (происходящий от коллеги, более привыкшего к этому стандарту, чем я).

На данный момент, если бы мне пришлось составить список, это было бы что-то вроде:

Зарезервировано по спецификации

  • -W: опции поставщика

Зарезервировано строго по соглашению

  • -h: сокращение от --help

Слабо зарезервировано соглашением

  • -n:сокращение от --dry-run

Существует ли такой список?Будет ли возможно сделать один?Это вообще желательно?

1 Ответ

1 голос
/ 21 мая 2019

Я создал скрипт для удаления Документы по GNU tools , пытаясь связать короткие варианты с длинными. Мне удалось собрать варианты из 48 различных инструментов и получить эти результаты .

Это далеко от совершенства, но я могу выделить некоторые тенденции. * означает, что я добавил разные варианты одного и того же слова для подсчета (пример --exclude с --exclude-all)

Сильные тренды: (что-нибудь с 10+ ассоциациями)

  • -V: --version
  • -h: --help
  • -f: --file
  • -i: --ignore*
  • -n: --no* (всегда --no-something)
  • -o: --output*
  • -q: --quiet (или --silent)
  • -v: --verbose (также --version, но --verbose имеет 22 удара, когда --version имеет только 13)

Средние тренды: (что-нибудь с 5+ ассоциациями)

  • -D: --define
  • -I: --include*
  • -X: --exclude*
  • -c: --count
  • -d: --debug
  • -f: --force
  • -i: --input*
  • -k: --key*
  • -m: --mode
  • -n: --dry-run
  • -r: --recursive
  • -u: --user

Слабые тренды: (что-нибудь с 3+ ассоциациями или один в своей категории с 2+ ассоциациями)

  • -0: --null
  • -C: --directory
  • -D: --debug
  • -F: --file
  • -H: --format
  • -L: --language или --licence (оба равны)
  • -U: --undefine
  • -W: --warnings
  • -a: --apend*
  • -c: --check
  • -e: --expression или --error*
  • -f: --foreground
  • -h: --host
  • -i: --include / --inetd / --interactive
  • -l: --list / --line*
  • -n: --number
  • -p: --password / --port / --print
  • -r: --reverse
  • -s: --silent / --lint*
  • -t: --test / --trace
  • -u: --unique / --update
  • -w: --width
  • -x: --debug
...