Проблема в том, что вы можете говорить такие вещи, как ls -laR
; это эквивалентно ls -l -a -R
. Так -recursive
будет интерпретироваться как -r -e -c -u -r -s -i -v -e
.
Почему варианты с длинными строками имеют двойную черту?
Этот вопрос, возможно, задавался раньше ...
Почему флаги типа --recursive имеют две черты вместо просто -recursive? Я знаю, что сокращенная версия просто -r. Существует ли максимальное количество символов, которое может иметь флаг с одним тире, прежде чем он потребует двух тире?
2 ответа на вопрос
Нет точного правила использовать одинарный или двойной тире в качестве опции для программы. Если кто-то решил работать с опциями самостоятельно, он может реализовать все, что захочет. Но если программист не ищет PITA и хочет, чтобы программа использовала общий, хорошо узнаваемый способ, то можно было бы использовать стандартные функции, getopt/getopt_long
которые обрабатывают длинные параметры (длинную строку, как вы просили), как двойные пунктирные короткие параметры (один символ) ) с префиксом с одной чертой. Функция getopt
является частью языка <unistd.h>
Си. Эту же функцию можно использовать в системах на основе Unix в стандартных оболочках, man getopt 1
которые используют параметры синтаксического анализа с одинарной и двойной штриховой (длинной) опцией.
Существует ли максимальное количество символов, которое может иметь флаг с одним тире, прежде чем он потребует двух тире?
Если кто-то использует функцию, описанную выше, короткие варианты могут иметь только один единственный символ.
Похожие вопросы
-
2
.profile в Mac OS X?
-
6
Какие функции Zsh вы используете?
-
5
Прозрачная командная строка в Vista?
-
-
4
Используйте портфель Windows из командной строки
-
4
Почему некоторые команды не существуют?
-
11
Есть ли простой способ разделить mp3 файлы?
-
2
Как я могу получить OSX Terminal.app для открытия полноэкранного режима, а не каскадного?
-
4
Синхронизация удаленных папок в Linux
-
6
Полноэкранная командная строка или замена Vista
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием