矢印キーを使用するときのbashプロンプトでANSIコードを防ぐ

矢印キーを使用するときのbashプロンプトでANSIコードを防ぐ

まず、明確にする必要がある2つのことがあります。

  • はい、同じタイトルの質問がすでにいくつかありますが、同じ状況について話すことも満足のいく答えも提供しないことがわかりました。
  • read「bashプロンプト」を意味するのは、ターミナル/シェルが提供するプロンプトではなく、対話型スクリプト内のプロンプトについて話すことです。 「一般」シェルプロンプト(私の場合:macOSターミナルアプリ、Bash 5.0)以外のスクリプトでのみこの問題は発生しません。

つまり、私のスクリプトにはユーザープロンプトがあります。たとえば、次のようになります。

read -rp "Enter your name: " name

今まではそんなに良くなった。ユーザーがスペルエラーを犯さない限り、これは問題にならない可能性があります。ただし、ユーザーが何かを変更したい場合は、矢印キーを使用しないことをお勧めします。そうすると、予想と違って呪いは動かずに変なキャラクターが現れます。

Enter your name: Sanantha^[[D

このような表示を避ける方法はありますか?別のスレッドから学んだ。 ANSIコードはありますか?予想される動作は、「左」キーを押すたびに実際にカーソルを左に1文字移動することです。

これはデプロイするスクリプトなので、スクリプト内で変更でき、構成ファイルを台無しにする必要がない場合に最適です。

ありがとうございます!

関連情報