ダイナミックメニューを作成して使用可能にする方法は?

ダイナミックメニューを作成して使用可能にする方法は?

特定のフォルダに保存されているファイル名でメニューを作成し、ファイルに割り当てられた番号を入力したら、catを使用してファイルの内容を印刷できるスクリプトを作成しようとしています。私が作成したループはメニュー生成にはうまく機能しますが、変数を自動的に設定し、それを使用してファイルの内容を印刷したり、ケース構造を生成したりする方法がわかりません(この場合、どのアプローチが良いかわからない)。私のループは次のとおりです

number=1
for file in ./menus/*; do
  echo "$number)" `basename -s .sh "$file"`
  let "number += 1"
done

ベストアンサー1

それについてdialog...

apt-get install dialog

例:

#!/bin/bash

HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
BACKTITLE="Backtitle here"
TITLE="Title here"
MENU="Choose one of the following options:"

OPTIONS=(1 "Option 1"
         2 "Option 2"
         3 "Option 3")

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

clear
case $CHOICE in
        1)
            echo "You chose Option 1"
            ;;
        2)
            echo "You chose Option 2"
            ;;
        3)
            echo "You chose Option 3"
            ;;
esac

おすすめ記事