在终端中粘贴多行命令后会终止

在终端中粘贴多行命令后会终止

例如,我将以下内容粘贴到我的终端中(末尾带有换行符):

pwd
adb doesnotexist
ls

三个都运行了。第二个失败退出。另一方面,粘贴以下内容:

pwd
adb shell pwd
ls

停止于adb并且不会继续粘贴或执行ls

  1. 这里采用什么机制来中止粘贴?
  2. 我怎样才能覆盖它?

答案1

我认为发生这种情况的原因是您正在终端中运行这些命令,而某些命令会干扰终端配置。例如,当sudo要求输入密码时,它会清除终端缓冲区,因此您无法预先输入密码:您不能先执行sleep 5; sudo ls,然后在 期间输入密码。要求确认sleep也是一样。rm

我可以用以下方法获得同样的效果:

ls
script -c ls -f /dev/null
pwd

意思是,如果我用鼠标在 Konsole 中粘贴这些命令,pwd 就不会执行。这里,第二个命令肯定会扰乱终端配置,这让我相信确实如此adb shell(但可能不是abd doesnotexist)。

相关内容