
単語リストを含むファイルがあります。このファイルを読み、リストから動物を選択できるようにメニューを作成する方法は?シンプルなbashスクリプト、カラフルではありません。
例: 動物.txt
dog
cat
lion
bear
例: 必須メニュー
1 - dog
2 - cat
3 - lion
4 - bear
Select choice: 3
You chose a lion.
答え1
答え2
ここでは通常スクリプトを要求しませんが、難しい部分は私がお手伝いします。
シェルに次のselect
機能があるとします(例bash
:)。これにより開始されます。
#!/bin/bash
PS3='Select choice: '
select ch in "dog" "cat" "lion" "bear"; do
case $REPLY in
[1-4]) break ;;
*) echo 'Try again' >&2
esac
done
printf 'You chose a %s\n' "$ch"
select
bash
メニューとプロンプトが表示されます。ヒントは変数の値として提供されますPS3
。
このselect
ステートメントはループであり、繰り返しごとにユーザーが選択します。選ぶ数字(またはユーザーが入力したすべての項目)はにあり、$REPLY
実際のメニュー項目はその文の変数にありますselect
(ここでは$ch
)。
case
ループのステートメントは、有効な応答が提供されたかどうかをテストします。そうであれば(つまり、$REPLY
1と4の間の単一の数値である場合)、break
ループを終了します。ユーザーが別のものを入力すると、単純なエラーメッセージが表示され、ループは次の反復を実行します。
メニュー項目が9つを超えると、値に$REPLY
複数の文字が含まれる可能性があるため、より複雑な方法で有効な入力をテストする必要があるかもしれません。
ループが終わったら、メニューから項目を選択できます$ch
。