2010-01-28 115 views
2

我有bash脚本我正在运行在Windows的powershell运行for循环。每隔一段时间,一次循环迭代就会挂起,直到我按下键盘上的回车键。
这并非总是发生,事实上,它很少发生,但它仍然存在。PowerShell bash循环被随机卡住等待键盘输入

有趣的是,我的循环内脏基本上是time _command_所以在我敲回车后,它会告诉我命令运行了多长时间。该命令实际上比循环迭代需要更少的时间执行 - 因为它由于某种奇怪的原因正在等待键盘输入。

让脚本在一夜之间运行,并在早上回来看看它并没有很远,这是相当烦人的。

是否有人知道为什么会发生这种情况以及如何解决它?

感谢, JBU

+0

恐怕我们需要更多信息你运行的任何一个*命令都可能会要求用户输入 – Trent 2010-01-28 22:53:51

+0

不幸的是,它不是一个可执行文件,但它不需要用户输入 – jbu 2010-01-28 22:58:16

+0

而且就像我说的,因为_time_标志命令为当我按下回车键时,它表示命令本身不会等待输入 – jbu 2010-01-28 22:58:55

回答

0

直到您发布的脚本,有一点我们可以做些什么来帮助。

但是,一般而言,您的某个命令可能会偶尔返回一个空值作为输入到另一个命令的stdin的输入,该命令在看到null时会以stdin形式查看终端。或类似的规定。

5

我几次遇到同样的问题。现在我想我已经找到了原因!

如果你曾经在PowerShell中按下鼠标,它可能会卡住,并需要用户按“Enter”才能继续。因此,解决方法是确保在运行程序时不会意外按下鼠标。

+0

控制台应用程序也会发生这种情况。基本上窗户正在等待选择,所以它只是等待。 – jhamm 2011-10-08 23:56:56

0

转到powershell属性并取消选中'Quick Edit'/'Insert'复选框。如果选择了这些选项,则控制台会暂停输出,并且只有在按下Enter键时才会恢复(您可以通过监视控制台标题栏来识别它 - 它将从"Administrator:Windows PowerShell"切换到"Select Administrator:Windows Powershell"

+0

如何访问Win10中的Powershell属性? – 2018-01-18 19:27:10