SSH会话回显剪切粘贴缓冲命令

SSH会话回显剪切粘贴缓冲命令,ssh,terminal,Ssh,Terminal,我注意到一些终端程序中有一种非常奇怪的行为,我正试图弄清楚这一点。有时,当我将一组命令粘贴到终端时,它会在逐个运行命令之前立即回显它们 例如。 粘贴以下内容: echo "Hello1" echo "Hello1" echo "Hello1" echo "Hello1" for i in `seq 1 10`; do sleep 1; done echo "Hello1" echo "Hello2" echo "Hello1" echo "Hello1" echo "Hello1" 结果是:

我注意到一些终端程序中有一种非常奇怪的行为,我正试图弄清楚这一点。有时,当我将一组命令粘贴到终端时,它会在逐个运行命令之前立即回显它们

例如。 粘贴以下内容:

echo "Hello1"
echo "Hello1"
echo "Hello1"
echo "Hello1"
for i in `seq 1 10`; do sleep 1; done
echo "Hello1"
echo "Hello2"
echo "Hello1"
echo "Hello1"
echo "Hello1"
结果是:

root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# for i in `seq 1 10`; do sleep 1; done
echo "Hello1"
echo "Hello2"
echo "Hello1"
echo "Hello1"
echo "Hello1"
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# echo "Hello2"
Hello2
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~# echo "Hello1"
Hello1
root@lev-host:~#

因此,for循环后面的那些行是我有点困惑的一行。有什么想法吗?

这些是您粘贴到外壳中的线条。它们是按您编写的方式写入的,但由于终端被睡眠阻塞,它们被发送,但终端尚未读取,因此该行不会以提示符开头。一旦对方读到以提示符开头的行,就会再次写入


真正的问题是什么?或者你只需要解释一下?

好的,这很有道理,但我想我的问题不是很清楚,为什么某些终端实际上会回显这些命令,而其他终端会逐行粘贴并使用换行符作为标记来等待提示?嗯。在我尝试时,它只是不做所描述的事情并等待。你在哪个终端看到这种行为?啊,这是有趣的部分。PuttyMac和widows以及MacOS终端都表现出这种行为,但Google Chrome终端模拟器和gnome终端似乎没有这个问题。回显是PuTTY和Terminal.app的预期行为。最终,它只是tty回显。然而,在本例中,它是一个tty驱动程序实现,它有一个bug,并给出一些奇怪的回音,这是不完整的。我从来都不想知道这么多关于tty的事。因此,最终这个答案是一个很好的解释正在发生什么的方法。