Универсальная абстракция ls

Спецификации

ОС: OS X; Клиент: Terminal; Оболочки: sh, bash

Проблема

Я пишу сценарий оболочки, который добавляет уровень абстракции к команде ls. Я хочу сделать ее "неубиваемой", поэтому я начал с выяснения всех возможных команд, которые ls может принять (через [ls(1) - страница руководства Linux][1]), чтобы я мог выполнить еще один уровень проверки/контроля опций, передаваемых через командную строку.

Прежде чем зайти слишком далеко в мой сценарий, я решил посмотреть, каково нормальное функционирование ls для некоторой длинной опции (двойной дефис). Я попробовал несколько из них, и каждый из них оказался неудачным в той или иной степени. Например, результат выполнения ls --ignore-backups таков:

<dir> <username>$ ls --ignore-backups
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

Вышеприведенный результат был одинаковым независимо от того, выполнял ли я его через sh или bash (что, как я знаю, должно быть очевидно для более опытных пользователей).

В этот момент я запустил man ls, который показал мне, что версия ls на моей машине принимает только однобуквенные опции.

Вопросы

  • Как я могу сделать свой сценарий универсальным?
  • Вообще, при передаче аргументов командной строки базовой команде UNIX/Linux, существует ли общепринятая стандартная библиотека, на которой можно основывать свои усилия?
  • Я упускаю какое-то важное понимание библиотеки команд UNIX/Linux?

ПРИМЕЧАНИЕ: Я относительно новичок в создании сценариев shell и не уверен, что задаю правильный вопрос (вопросы).

0
13.08.2019, 19:53
0 ответов

Теги

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