スクリプト自体からヘルプメッセージを抽出したいと思います。
#!/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'