0

インタラクティブでカーソルキーの使用に反応するシェルスクリプトを書きたいと思います。私の現在のアプローチは少し複雑に思えます。tput kcud1etc. を使用してカーソル キーのエスケープ シーケンスを決定し、read -s -n 1 aバイト単位で読み取り、収集された文字列にそのバイトを追加し、収集された文字列を決定されたエスケープ シーケンスと比較します。どちらかが一致する場合、私は反応することができます。

エスケープ シーケンスがどこで終了するのかわからないため、これには問題があります。たとえば、tput kcud1ここで (下矢印) は を返します"\eOB"。未知のエスケープ シーケンスを無視するためにタイムアウトを使用します (エスケープ文字が到着した場合は、おそらく最初からやり直します)。これはすべて私には良く見えません。

シェルスクリプトで矢印キーの使用に反応する簡単な方法はありませんか?

4

0 に答える 0