LoginSignup
0

More than 5 years have passed since last update.

何かを入力するまで終了出来ない bash スクリプト(read コマンドを使った永遠の入力待ち)

Last updated at Posted at 2016-11-19

どうも、星野源です。

こちら からの転載です。

サンプル

#!/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 を使えば取得出来るけど、何かを入力するまでは入力は促したいという要件が自分の中で発生した為。

抜け道が無いか調査中。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0