ユーザーが特定の場所に入力するのを防ぐ方法は? (しゃっくり)

ユーザーが特定の場所に入力するのを防ぐ方法は? (しゃっくり)

私は何かをテストするための基本的なスクリプトを書いた。 (何の理由もなく)次の行を表示したいとしましょう。

#!/bin/bash

while true; do
    echo -e " _____________________________________"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"

    read -p "Type a letter: " letter
done

入力aと出力が与えられたら、このプログラムを正常に使用すると次のようになります。

user@DESKTOP:/mnt/c/Users/user/Documents$ ./script.sh
 _____________________________________
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
Type a letter: a
 _____________________________________
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
Type a letter:

しかし、端末に非常に迅速に入力を入力すると、次のように技術が壊れます。

user@DESKTOP:/mnt/c/Users/user/Documents$ ./script.sh
a
 _____________________________________
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
Type a letter:  _____________________________________
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
|_____________________________________|
Type a letter:

\n私はこれを以前に試したこと------があり、動作します。ただし、場合によっては使用しないでください。\n

どうすればこれを防ぐことができますか?ありがとうございます!

ベストアンサー1

#!/bin/bash

while true; do
    stty -echo
    echo -e " _____________________________________"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    echo -e "|_____________________________________|"
    read -t .1 -n 100 buf
    stty echo
    read -e -i $buf -p "Type a letter: " letter
done

おすすめ記事