我以前经历过类似的行为,但直到现在我才能重现它:影响下一个命令提示符后文本的命令的输出,准备Enter由用户编辑。
以下面的例子为例:
cat /usr/share/terminfo/a/ansi
Run Code Online (Sandbox Code Playgroud)
具有以下效果:
或者,复制并粘贴:
1%dP1%dM1%dB1%d@1%dS1%dL1%dD1%dC1%dT1%dA%p1%c2%{1}%-%db%p1%dd
1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m +%d;%dR;0123456789]c1%dm1%dmAX[user@untrusted ~]$ R65;1;9c
Run Code Online (Sandbox Code Playgroud)
如您所见,R65;1;9c出现在命令提示符之后,按下Enter它会将其评估为命令。
我确实记得文本不仅出现在命令行之后,而且还被再次执行的情况,可能是因为它包含换行符。
这可以被认为是错误还是预期的行为,某种不可打印字符的组合允许在下一个命令提示符之后写入?