どうも、星野源です。
こちら からの転載です。
サンプル
#!/usr/bin/env bash
oreno_input() {
while true;do
echo "何か入力して下さい"
trap 'continue' 2
read key
case $key in
[a-zA-Z]*) # 英数字
echo -e "$key"
break
;;
[^\x01-\x7E]*) # 2 バイト文字
echo -e "$key"
break
;;
esac
done
}
oreno_input
実行
bash-3.2$ ./sample.sh
何か入力して下さい
何か入力して下さい
何か入力して下さい
何か入力して下さい
Enter だけ叩いても永遠に「何か入力して下さい」が...
何か入力して下さい
^C^C^C^C^C^C^C
何か入力して下さい
^C^C^C^C
何か入力して下さい
^C^C^C^C
何か入力して下さい
Ctrl + c で抜けようとしてもダメよダメダメ。
何か入力して下さい
真田丸
真田丸
bash-3.2$
仕方無いので「真田丸」を入力したら抜け出すことが出来た。
なんで作ったの?
キーボードからの入力は read
を使えば取得出来るけど、何かを入力するまでは入力は促したいという要件が自分の中で発生した為。
抜け道が無いか調査中。