我打开一个xterm终端(80列x 24行),然后运行$ bash --norc --noprofile
,然后$ tty
获取终端的文件名:输出为/dev/pts/9
。
从另一个终端运行:
$ printf foo >/dev/pts/9
foo
在第一个终端的shell命令行上打印。
如果我按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'
,我可以在bash 5.0上重现,而无需--norc --noprofile
插入17个字符或更多。