21

Большинство команд unixoid имеют короткие и длинные альтернативы для параметров командной строки, такие как ls -a и ls --all или ls -A и ls --almost-all . Почему существуют эти два пути? Один из них короче, другой легче читать и понимать. Но каждый раз, когда я пишу сценарий оболочки, мне нужно решить, какой из них я хочу использовать. Известно ли, почему существуют две альтернативы? Кто был первым, почему был представлен другой? Например, в DOS/Windows практически не учитывается регистр букв из одной буквы.

3 ответа3

23

Изначально были только односимвольные варианты. Некоторые программы выбирали несколько символов, но все еще с одной чертой. AFAIK много-символьные опции двойной черты происходят из GNU ; они были введены, потому что они более читабельны и часто более запоминаемы (и их может быть более 52). Многие программы теперь имеют и то и другое: короткие опции для ввода текста в командной строке и запоминания символа, длинные опции для скриптов или в командной строке, если вы помните только более длинное имя опции.

1

Еще одна цель, которую я вижу в различных способах задания параметров (коротких и длинных), заключается в том, что при наборе тексты люди из командной строки Unix/Linux предпочитают иметь как можно более короткие команды. Тем не менее, они могут стать загадочными, и если сценарий написан с использованием этих коротких версий, их может стать трудно понять в будущем. Использование длинной версии может сделать команду SAME более читаемой и понятной для кого-то, кто не является гуру этой команды, особенно если эта команда на самом деле является локально написанным сценарием, а не известной командой.

1

Вы можете догадаться, что это дело вкуса. При наборе текста в командной строке может быть предпочтительнее использовать короткий параметр, особенно в случае параметров запуска (например, ls -AL). Длинные опции лучше передают намерение, поэтому вам не нужно обращаться к справочной странице, когда вы читаете ls --almost-all --dereference .

Естественно, по мере накопления опыта вы можете узнать, что оба коротких параметра -A и -L достаточно известны и не требуют дополнительной документации. Особенно в сложной команде, которая может комбинировать несколько команд интересными способами с оценкой, перенаправлением и т.д. В таком случае вы можете предпочесть краткость документации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .