プロンプトにコマンドオプションを表示する

プロンプトにコマンドオプションを表示する

ユーザーに入力を要求するLinuxコマンドをスクリプト化する方法はありますか?

たとえば、

chage選択の幅が広い

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

私は上記のオプションを入力しchageてインポートして1つを選択できるのが好きです。これにより、chage -h毎回入力しなくてもすべてのオプションを覚えておくのに役立ちます。

答え1

特定のコマンドをスクリプト化する方法はありますか?はい。これをすべてのコマンドに一般化する方法はありますか?私の知る限り。

つまり、役に立つことができるのですbash-completion。このようにコマンド-の後に double と入力すると、利用tab可能なオプションのリストが表示されます。

$ chage --<tab><tab>
--expiredate  --inactive    --list        --mindays     --warndays
--help        --lastday     --maxdays     --root

$ chage <tab><tab>
<list of user names>

答え2

Zshには、run-helpデフォルトでESChプロンプトからそのコマンドのマニュアルページを呼び出すウィジェットがあります。 、

チャグESCh

熱予定だCHAGE(1)

マニュアルページを終了すると、コマンドプロンプトに戻ってオプションを入力する準備が整います。

このウィジェットの詳細については、以下を参照してくださいman zshcontrib

オンラインヘルプアクセスキー
シーケンスESC hは通常、ヘルプウィジェットを実行するためにZLEバインディングによって実行されます(zshzle(1)を参照)。これは、現在の入力行のコマンドワードを引数として使用して run-help コマンドを呼び出します。デフォルトでは、run-helpはmanコマンドのエイリアスなので、コマンドワードがシェル組み込み関数またはユーザー定義関数の場合は通常失敗します。シェルが提供するオンラインヘルプは、run-helpエイリアスを再定義することで改善できます。

マニュアルページに記載されているように、ウィジェットは、独自のヘルプファイル(で定義されているHELPDIR)またはコミュニティによって提供される他のファイルを指すように設定できます。

関連情報