ユーザーに入力を要求する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
)またはコミュニティによって提供される他のファイルを指すように設定できます。