Tôi đang sử dụng các phiên bản mặc định của bash và màn hình trong OS X Lion.
Khi tôi đang ở trong một phiên màn hình và tôi cuộn qua lịch sử bash và tôi đến một lệnh đủ dài để gói.
Trước tiên tôi có thể gõ một số lệnh:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
Điều đó kết thúc đúng như đã viết ở trên, nhưng nếu tôi nhấn lên để truy cập nó qua lịch sử của bash, bảng điều khiển chỉ hiển thị:
83279836214c0.144847759343/
Vì vậy, dấu nhắc và toàn bộ dòng đầu tiên của lệnh bị thiếu, điều này gây khó khăn cho việc chỉnh sửa; nếu tôi cuộn trở lại dòng đầu tiên, nó sẽ xuất hiện nhưng nó ghi đè lên dòng đầu ra cuối cùng. Khi tôi thực thi lệnh, phần còn lại của dòng đầu tiên được hiển thị và mọi thứ trông như mong đợi:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$
Điều gây tò mò hơn là, nếu sử dụng lịch sử để truy cập lệnh dài nhưng tôi chưa thực hiện nó, thì hãy sử dụng bất kỳ C-a
lệnh màn hình nào , như chuyển sang cửa sổ khác rồi quay lại hoặc nếu tôi nhấp ra khỏi cửa sổ thiết bị đầu cuối hiện tại của mình và trở lại nó, lệnh lịch sử bây giờ được hiển thị lại một lần nữa.
Tôi PS1='\u@\h:\w$ '
không có gì lạ xảy ra ở đó.
Có cách nào để hiển thị chính xác toàn bộ lệnh khi sử dụng lịch sử không? Tôi đã thử chơi với các cài đặt bọc màn hình, nhưng chúng chỉ làm mọi thứ tồi tệ hơn.
stty -a
trình diễn:
speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
TERM
là xterm-256color
và tput am; echo $?
chỉ cho tôi 0.
stty -a
cái gì?