Tôi mở một thiết bị đầu cuối xterm (80 cột x 24 dòng), sau đó chạy $ bash --norc --noprofilevà 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), foosẽ 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 fookhi tôi nhấn C-utrong 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 --noprofilechèn 17 ký tự trở lên.