bash のコマンド ライン引数の検証を行う再利用可能なコード スニペットを探しています。
Apache Commons CLI が提供する機能に似たものが理想的です。
Commons CLI は、さまざまなタイプのオプションをサポートしています。
- POSIX ライクなオプション (つまり、tar -zxvf foo.tar.gz)
- GNU のような長いオプション (つまり、du --human-readable --max-depth=1)
- 値が付加された短いオプション (例: gcc -O2 foo.c)
- ハイフンが 1 つの長いオプション (例: 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
...