(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Bash/Linux】シェルスクリプトのコメント行を用いてヘルプ機能を実装する

スポンサーリンク

やりたいこと

引数に--helpまたは-hが指定された場合にヘルプを出力したい。
尚、表示する内容はシェルスクリプトの中で先頭に#付きのコメント行として記載されていると仮定。具体的には以下ルールとする。

# test → 出力する
#test → 出力しない
## test → 出力しない
環境情報
$ bash --version
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)

やり方

シェルスクリプトの任意の箇所に以下を挿入させる。

if [ "$1" = "--help" ] || [ "$1" = "-h" ] || [ -z "$1" ]; then
cat $0 | grep '^\s*#' |grep -v '^\s*#!' | sed -e "s/^# //g" | grep -v '^\s*#'
fi

尚、コメント行のルールは下記を編集することで任意に変更可能。

sed -e "s/^# //g" | grep -v '^\s*#'

以下。補足です。

補足

ヘルプの表示機能を簡易的に実装しました。

例えば引数毎に以下のように説明を記載すれば

if [ "$1" = "-a" ]; then
# -a          Display date
...

スクリプトを実行すればコメントが情報として表示されます。

$ ./test.sh --help
-a          Display date

以上です。