シェルスクリプトなどでターミナル上のキー入力を受け付けた時に、日本語を入力し確定を押すと、バックキーを押しても正常に動作しません。
例えば、「ああああ」と入力しバックキーを押すと、最後の「あ」が消えることは消えるのですが、文字カーソルは「あ」の半分しか戻りません(半角文字として認識されている?)。
もう一度バックキーを押すとカーソルキーは最後の「あ」の右側に移り、表示は「あああ」のままです。
プログラム上は2文字文の「あ」が削除されたことになっており、入力値は「ああ」となりますが、ターミナル上の表示は「あああ」になり齟齬がでてしまいます。
同じ状況に遭遇し、解決された方はいらっしゃいますでしょうか?
stty -a の結果を書いてみてください。
❯ stty -a speed 9600 baud; 18 rows; 78 columns; lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo -extproc iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8 -ignbrk brkint -inpck -ignpar -parmrk oflags: opost onlcr -oxtabs -onocr -onlret cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow -dtrflow -mdmbuf cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>; eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;
お願いします。
