Я открываю терминал xterm (80 столбцов х 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'
, я могу воспроизвести на Bash 5.0 без,--norc --noprofile
если я вставлю 17 символов или более.