Tôi mở một thiết bị đầu cuối xterm (80 cột x 24 dòng), sau đó chạy $ bash --norc --noprofile
và sau đó $ tty
để lấy tên tệp của thiết bị đầu cuối: đầu ra là /dev/pts/9
.
Từ một thiết bị đầu cuối khác tôi chạy:
$ printf foo >/dev/pts/9
foo
được in trên dòng lệnh shell trong terminal đầu tiên.
Nếu tôi nhấn C-u
để chạy unix-line-discard
(tên của hàm được cung cấp bởi $ bind -P | grep -i c-u
), foo
sẽ không bị xóa.
Nếu tôi chèn 11 khoảng trắng và nhấn C-u
, khoảng trắng sẽ bị xóa nhưng không foo
.
Nếu tôi chèn 12 dấu cách và nhấn C-u
, các khoảng trắng cũng sẽ bị xóa foo
.
Tại sao tôi không thể xóa foo
khi tôi nhấn C-u
trong khi con trỏ của tôi ở ngay sau nó và tại sao tôi cần phải chèn 12 ký tự để xóa nó?
Môi trường:
$ 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'
, tôi có thể sao chép trên bash 5.0 mà không cần--norc --noprofile
chèn 17 ký tự trở lên.