xtermターミナル(80列x 24行)を開き、を実行して$ bash --norc --noprofile
、$ tty
ターミナルのファイル名を取得します/dev/pts/9
。出力はです。
私が実行する別の端末から:
$ printf foo >/dev/pts/9
foo
は、最初の端末のシェルコマンドラインに出力されます。
を押しC-u
て実行するとunix-line-discard
(で指定された関数の名前$ bind -P | grep -i c-u
)、foo
削除されません。
11個のスペースを挿入してを押すC-u
と、スペースは削除されますが削除されませんfoo
。
12個のスペースを挿入してを押すC-u
と、スペースも削除されますfoo
。
カーソルが直後にあるfoo
ときに押すと削除できないのはなぜC-u
ですか?また、削除するには12文字を挿入する必要があるのはなぜですか?
環境:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
$ bash --version | head -n1
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
$ xterm -version
XTerm(322)
$ printf 'some text'
、を使用すると、--norc --noprofile
17文字以上を挿入しなくてもbash 5.0で再現できます。