web-dev-qa-db-ja.com

動的メニューを生成して使用可能にする方法は?

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

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

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
3
Flash Thunder