Bashで選択を許可するTUI(たとえばdialog
)を作成できるプログラムがあることを知っています。whiptail
しかし、私はシンプルで美しく完全なCLIメニューを望んでいます(実現するのは簡単ではありませんが)。
メモ:
- 計画は次のとおりですいいえターミナルを消去する(現在のターミナルの内容はそのまま維持する必要があります)
- プログラムはキーを押すたびに行を吐くのではなく、メニューの内容を変更する必要があります。
答えはbash / shellスクリプトでなければなりません。
文字列配列が与えられた場合(この場合は4):
options=(opt1 "option 2" another "option here")
選択したオプションが強調表示されるメニューを作成したいと思います(クリックするとそのオプションが選択されますenter
)。
ユーザーが上下矢印を押すと、プログラムは前/次の項目を選択してオプションを「循環」する必要があります(最初のオプションで上矢印を押すと、選択が最後のオプションに変わります)。この例では、下矢印を押した後のメニューを示しています。
ユーザーが「opt」と入力すると、メニュー選択に「opt」で始まるオプションのみが表示され、現在の選択が最初の項目に戻ります。
可能ですか?その場合はどうすればよいか教えてください。また、必要に応じて説明を追加することもあります。
答え1
というツールがあることがわかりました。富士、これはファジーファインダーです。スクリプトは次のようにする必要があります。
options=(opt1 "option 2" another "option here")
echo "Please choose an option:"
printf "%s\n" "${options[@]}" | fzy
これが私が望むようです。