stty原始-echo的Bash/Zsh问题



出现这个问题是因为我经常使用反向shell,并且经常需要升级shell以启用选项卡自动完成或光标使用。然而,问题不仅仅在于反向shell,即使我在自己的终端中使用以下输入,我也会得到相同的结果。我使用了终结者,但也在终端中尝试过,但也遇到了同样的问题。

我尝试的第一种方法是:

<Ctrl-z>
stty raw -echo
fg
<enter>
<enter>

这将导致我无法输入文本(出现错误字符,例如^M表示输入(:

外壳工作

用Ctrl-z挂起;stty原始回波";,按回车键两次,然后按前景键继续(忽略"whoami"…!(:

Ctrl-z,stty raw-echo,(请忽略"whoami"…(

在底部,您可以看到,当输入fg时,我可以输入文本,但如果按enter键,我会得到^M。

在浏览了其他帖子后,我尝试了两件事。一个是确保icrnl设置为ON;stty raw-echo;fg";作为一个命令而不是两个命令。这产生了不同的结果。它工作得更好,但每当我按下回车键时,提示就会在屏幕上移动:

stty raw-echo;fg

我试着在bash而不是zsh中这样做,我得到了同样的结果。有人知道我该怎么解决这个问题吗?我将在下面附上我的stty以获取信息:

└─$ stty -a
speed 38400 baud; rows 46; columns 116; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

谢谢你的帮助。

Bizarelly,这个问题已经解决了好几个星期了,我真的刚刚解决了。。。!

在暂停和做stty之前。。。更改python命令已经修复了它:

原件:python -c "import pty; pty.spawn('/bin/bash')"

新(作品(:python -c 'import pty;pty.spawn("/bin/bash")'

移除pty之间的空间;pty已经修复了它。然后执行上面的命令,但包括;fg在stty raw之后-echo。制表符自动完成等所有工作!-

最新更新