Bash 完全 CLI インタラクティブメニュー

Bash 完全 CLI インタラクティブメニュー

Bashで選択を許可するTUI(たとえばdialog)を作成できるプログラムがあることを知っています。whiptailしかし、私はシンプルで美しく完全なCLIメニューを望んでいます(実現するのは簡単ではありませんが)。

メモ:

  • 計画は次のとおりですいいえターミナルを消去する(現在のターミナルの内容はそのまま維持する必要があります)
  • プログラムはキーを押すたびに行を吐くのではなく、メニューの内容を変更する必要があります。

答えはbash / shellスクリプトでなければなりません。

文字列配列が与えられた場合(この場合は4):

options=(opt1 "option 2" another "option here")

選択したオプションが強調表示されるメニューを作成したいと思います(クリックするとそのオプションが選択されますenter)。 実施例1

ユーザーが上下矢印を押すと、プログラムは前/次の項目を選択してオプションを「循環」する必要があります(最初のオプションで上矢印を押すと、選択が最後のオプションに変わります)。この例では、下矢印を押した後のメニューを示しています。 実施例2

ユーザーが「opt」と入力すると、メニュー選択に「opt」で始まるオプションのみが表示され、現在の選択が最初の項目に戻ります。 実施例3

可能ですか?その場合はどうすればよいか教えてください。また、必要に応じて説明を追加することもあります。

答え1

というツールがあることがわかりました。富士、これはファジーファインダーです。スクリプトは次のようにする必要があります。

options=(opt1 "option 2" another "option here")
echo "Please choose an option:"
printf "%s\n" "${options[@]}" | fzy

これが私が望むようです。

関連情報