J'ouvre un terminal xterm (80 colonnes x 24 lignes), puis je lance $ bash --norc --noprofile
, puis $ tty
pour obtenir le nom de fichier du terminal: la sortie est /dev/pts/9
.
Depuis un autre terminal, je lance:
$ printf foo >/dev/pts/9
foo
est imprimé sur la ligne de commande du shell dans le premier terminal.
Si j'appuie sur C-u
pour exécuter unix-line-discard
(nom de la fonction donnée par $ bind -P | grep -i c-u
), foo
n'est pas supprimé.
Si j'insère 11 espaces et appuie sur C-u
, les espaces sont supprimés mais pas foo
.
Si j'insère 12 espaces et appuie sur C-u
, les espaces sont également supprimés foo
.
Pourquoi ne puis-je pas supprimer foo
lorsque j'appuie C-u
alors que mon curseur se trouve juste après, et pourquoi dois-je insérer 12 caractères pour le supprimer?
Environnement:
$ 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'
, je peux reproduire sur bash 5.0 sans--norc --noprofile
que j'insère 17 caractères ou plus.