Размещение параметров командной строки в ударе

Я только начинающий использование Mac и был расстроен, что параметры командной строки требуются сразу после команды так, чтобы это работало:

ls -la /usr

но это не делает:

ls /usr -la

ls: - la: Никакой такой файл или каталог

Там какой-либо путь состоит в том, чтобы изменить это? Или кто-то может сказать мне, почему размещение опций является агностиком на большинстве платформ Linux, но не на Mac?

3
задан 09.05.2010, 15:36

3 ответа

Linux использует инструменты GNU. OS X использует инструменты BSD. Инструменты BSD намного более требовательны в отношении порядка и присутствия параметров командной строки.

1
ответ дан 08.12.2019, 01:47

Обработка командной строки определяется в исходном коде программы, которая стала определенной командой.

Как правило, набор команд пользуются определенной библиотекой обработки командной строки (GNU getargs, или в случае сценариев Perl GetOpts:: Долго примеры такого), хотя, была ли обработка командной строки скручена вручную или пользовалась какой-либо определенной библиотекой, совершенно зависит от команды.

Поэтому способности обработки командной строки (например, поддержка переупорядочения, использования -- формировать рисунок конца флагов, сворачивания -a -b в -ab, и т.д....), зависят полностью от исходного кода отдельных приложений и/или библиотек, которыми они пользуются.

Определенный шаблон, который Вы отметили, происходит, вероятно, из-за отличающихся библиотек обработки командной строки (или отдельный скрученный вручную код обработки аргумента, используемый разработчиками) между Linux с его корнями GNU и OSX (IIRC, источники BSD, но не уверен)

1
ответ дан 08.12.2019, 01:47

Причины вероятны в библиотеках обработки командной строки, но если бы я должен был предположить мотивацию строгих библиотек упорядочивания, то она должна наложить непротиворечивость. Сначала названный параметрами затем позиционные параметры. После того как непротиворечивость наложена, она делает командные строки легче проанализировать мысленно.

0
ответ дан 08.12.2019, 01:47

Теги

Похожие вопросы