我有bash脚本我从执行for
循环的windows中的powershell运行。每隔一段时间,其中一个循环迭代就会挂起,直到我按下键盘上的Enter键为止
这不会一直发生,事实上,它很少发生,但它仍然存在。
有趣的是,我的循环内部基本上是time _command_
所以在我按下回车后,它会告诉我命令运行了多长时间。该命令实际上比循环迭代花费更少的时间来执行 - 因为它因某些奇怪的原因等待键盘输入。
让脚本在一夜之间运行并在早上回来看它没有走得太远是非常烦人的。
有人知道为什么会发生这种情况以及如何解决这个问题?
谢谢, JBU
答案 0 :(得分:5)
我多次遇到过同样的问题。现在我想我找到了原因!
如果您曾经在powershell中按下鼠标,它可能会卡住并需要用户按“Enter”继续。因此,绕过方法是确保在您运行某个程序时不会在shell窗口中意外按下鼠标...
答案 1 :(得分:0)
在你发布剧本之前,我们无能为力。
但是,一般情况下,你的一个命令可能会偶尔返回一个null作为另一个命令的stdin的输入,当看到null时,它将终端视为stdin。或者沿着这些方向发展。
答案 2 :(得分:0)
转到powershell属性并取消选中'Quick Edit'/'Insert'
复选框。如果选择了这些,控制台将暂停输出并仅在按下Enter键时恢复(您可以通过监视控制台标题栏来识别它 - 它将从"Administrator:Windows PowerShell"
切换到"Select Administrator:Windows Powershell"