オプションがリストの内容になるようにbashメニューをスクリプトする方法は?

オプションがリストの内容になるようにbashメニューをスクリプトする方法は?

私は一般的なbashメニュースクリプトを使用しています。

#!/bin/bash
# Bash Menu Script Example

PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Option 1")
            echo "you chose choice 1"
            ;;
        "Option 2")
            echo "you chose choice 2"
            ;;
        "Option 3")
            echo "you chose choice 3"
            ;;
        "Quit")
            break
            ;;
    esac
done

実行すると、内容は次のようになります。

1) Option 1
2) Option 2
3) Option 3
4) Quit
Please enter your choice: 

list.txtというファイルがあります。

Android
iOS
Windows

オプションがlist.txtの内容になるようにbashメニュースクリプトを作成するには:

1) Android
2) iOS
3) Windows
4) Quit
Please enter your choice: 

ベストアンサー1

交換できます

options=("Option 1" "Option 2" "Option 3" "Quit")

そして

mapfile -t options < list.txt
options+=( "Quit" )

そしてcaseパターンを調整してください。変数の内容をテストする代わりに、選択した数字が含まれているため、確認しやすい変数を$opt使用できます。$REPLY

おすすめ記事