Библиотека проверки аргументов командной строки для Bash

Я ищу повторно используемый фрагмент кода, который выполняет проверку аргументов командной строки для bash.

В идеале что-то похожее на функциональность, предлагаемую интерфейсом командной строки Apache Commons:

Командная строка Commons поддерживает различные типы параметров:

  • POSIX-подобные параметры (например, tar -zxvf foo.tar.gz)
  • GNU как long параметры (например, du --human-readable --max-depth=1)
  • Короткие параметры с прикрепленным значением (например, gcc -O2 foo.c)
  • длинные параметры с одним дефисом (например, ant -projecthelp )
  • ...

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

usage: ls
 -A,--almost-all          do not list implied . and ..
 -a,--all                 do not hide entries starting with .
 -B,--ignore-backups      do not list implied entried ending with ~
 -b,--escape              print octal escapes for nongraphic characters
    --block-size <SIZE>   use SIZE-byte blocks
 -c                       with -lt: sort by, and show, ctime (time of last
                          modification of file status information) with
                          -l:show ctime and sort by name otherwise: sort
                          by ctime
 -C                       list entries by columns

Я бы включил этот фрагмент кода в начало своих сценариев Bash и повторно использовал его в других сценариях.

Должно быть что-то вроде этого. Я не верю, что мы все пишем код для этого или подобного:

#!/bin/bash

NUMBER_OF_REQUIRED_COMMAND_LINE_ARGUMENTS=3

number_of_supplied_command_line_arguments=$#

function show_command_usage() {
  echo usage:
  (...)
}

if (( number_of_supplied_command_line_arguments < NUMBER_OF_REQUIRED_COMMAND_LINE_ARGUMENTS )); then
  show_command_usage
  exit
fi

...
5
задан Robottinosino 27 June 2012 в 06:59
поделиться