スクリプト自体からヘルプ情報を抽出する

スクリプト自体からヘルプ情報を抽出する

スクリプト自体からヘルプメッセージを抽出したいと思います。

#!/bin/bash
#
# foo - do things
# Author: John Doe <jhon@doe>
# ----------------------------------------------
# SYNOPSIS
#   foo [OPTIONS] FILE
# 
# DESCRIPTION
#   At vero eos et accusamus et iusto odio
#   dignissimos ducimus qui blanditiis praesenti
#   voluptatum deleniti atque corrupti quos.
# ----------------------------------------------

sed -n '/# -\+$/,/# -\+$/ p' $0

効果がある! 2つの区切り記号# -\+$と2つの区切り記号を含む内容のみを印刷します。問題は、区切り文字を印刷したくないということです。

人間に優しい構文を備えたマニュアルページジェネレータに関する提案はありますか?

修正する:たぶん私の質問が正しく表現されていないかもしれません。で始まり、で終わる# -----2行の間の内容を印刷したいと思います----

私はこの解決策を知っています:

sed -n '/# -\+$/,/# -\+$/ p' $0 | head -n -1 | tail -n +2

しかし、私はあまりにも陳腐に見えないクリーンでエレガントなソリューションを望んでいました。

ベストアンサー1

これを試してみてください:

#!/bin/bash
#
# foo - do things
# Author: John Doe <jhon@doe>
# ----------------------------------------------
# SYNOPSIS
#   foo [OPTIONS] FILE
# 
# DESCRIPTION
#   At vero eos et accusamus et iusto odio
#   dignissimos ducimus qui blanditiis praesenti
#   voluptatum deleniti atque corrupti quos.
# ----------------------------------------------


cat `which $0` | sed -n '0,/# -\+$/d;/# -\+$/,$d;p'

おすすめ記事