シェルでselectコマンドによって選択肢を提示し、選んだほうに分岐させることを確認するために、テストプログラムを作成しています。
そのような動作をするようにシェルを組んだのですが、なぜか、実行後選択肢を出すものの、選ぶ前に強制的に「いいえ」を選択されてしまい、終わってしまいます。。
シェルのコードは以下のようになっております。
test*.txtは、"test1.txt"と"test2.txt"を参照しております。なので2回選択がループすると思われます。
sh
1#!/bin/bash 2 3if ls ./test*.txt > /dev/null 2>&1 4then 5 find ./ -type f -name "test*.txt" | grep -v _backup | sort | while read file; do 6 echo "${file}ですか?" 7 select VAR in はい いいえ 8 do 9 if [ "$VAR" = "はい" ]; then 10 echo "${file}です。" 11 break 12 13 else [ "$VAR" = "いいえ" ]; 14 echo "${file}ではありません。" 15 break 16 fi 17 done 18 done 19fi
実行結果は以下のようになっております。
$ bash filetest.sh
./test1.txtですか?
- はい
- いいえ
? ./test1.txtではありません。
選択が出来て希望数ループするようにしたいのですが、何が間違っているのでしょうか?ご教示くださいお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/02 01:28
2018/10/02 01:56