3

read コマンドを使用して、ユーザーの入力内容をキャッチしようとしています。

read -p "Please enter your name -> " -n 20 name

しかし、入力した内容を修正することはできないことがわかりました。「BackSpace」を削除して追加しないようにするにはどうすればよいですか?

4

2 に答える 2

4

最も簡単な方法は、-eフラグを使用して読み取ることです。これにより、readlineが使用されるようになります。

read -e -p "Please enter your name -> " -n 20 name

ターミナル設定(stty)を変更して、削除ではなくバックスペースが消去されるようにすることもできます。

于 2012-11-05T17:33:57.103 に答える
0

ユーザーが入力したテキスト(またはその他のテキスト)をcol -b、次のようにパイプ処理できます。

name=`echo $name|col -b`

-eこれは、readコマンドのオプションを使用するよりも移植性があります。これ-eは、AIXなどのすべてのUnixシステムでサポートされているわけではないためです(GNU / Linux拡張機能だと思います)。

于 2012-11-05T17:37:51.107 に答える