インタラクティブな使用のための関数に使用法の説明を表示する

インタラクティブな使用のための関数に使用法の説明を表示する

.bashrc端末で対話的に使用するためにmyで定義されたいくつかの関数があります。私は通常、その意図された用途を説明する説明を前に付けます。

# Usage: foo [bar]
# Foo's a bar into a baz
foo() {
  ...
}

ソースコードをナビゲートする場合は問題ありませんが、type関数が何をしているのかをすばやく覚えたい場合は、端末で実行する方が良いでしょう。しかし、これには(もちろん)コメントは含まれません。

$ type foo
foo is a function
foo ()
{
    ...
}

typeこれにより、「この注釈が持続し、Pythonの精神で表示できるとしたらいいのではないか?」と思いました。ドックストリング私はこれを思い出しました:

foo() {
  : Usage: foo [bar]
  : "Foo's a bar into a baz"
  ...
}

$ type foo
foo is a function
foo ()
{
    : Usage: foo [bar];
    : "Foo's a bar into a baz";
    ...
}

typeこれで使用量が出力に含まれます。もちろん、引用はエラーが発生しやすい問題になりますが、うまくいけばより良いユーザーエクスペリエンスを提供します。

だから私の質問はこれが悪い考えですか? Bash機能ユーザーに追加のコンテキストを提供するためのより良い選択肢(例:man/ for function)はありますか?info

理想的には、使用上のガイドラインが関数定義の近くにあり、ソースコードを見ている人も利点を得ることを望んでいますが、これを行うための「正しい」方法がある場合は、代替案が開いています。

編集するこれはかなり単純なヘルパー関数です。私はインタラクティブに追加のコンテキストを取得したかった。もちろん、フラグを解析するより複雑なスクリプトの場合はオプションを追加しますが、これらのスクリプトでは、--helpすべての項目にヘルプフラグを追加するのは少し面倒です。おそらくそれは私が受け入れる必要があるかもしれませんが、この:ハッキングは合理的にうまくいくようです。

ベストアンサー1

私はこれを行う良い方法が1つしかないとは思いません。

多くの関数、スクリプト、およびその他の実行可能ファイルは、ユーザーが提供したり-hオプションで提供したりする場合にヘルプメッセージを提供します。--help

$ foo() {
[[ "$1" =~ (-h|--help) ]] && { cat <<EOF
Usage: foo [bar]
Foo's a bar into a baz
EOF
return;
}
: ...other stuff...
}

たとえば、

$ foo -h
Usage: foo [bar]
Foo's a bar into a baz

$ foo --help
Usage: foo [bar]
Foo's a bar into a baz

おすすめ記事