特定のフォルダに保存されているファイル名でメニューを作成し、ファイルに割り当てられた番号を入力したら、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