msys 没有以交互方式打开程序

Posted

技术标签:

【中文标题】msys 没有以交互方式打开程序【英文标题】:msys not opening programs interactively 【发布时间】:2013-05-15 01:17:45 【问题描述】:

。比如我输入python,程序就挂了。即使mysql 在我输入密码后也会挂起(不过,输入密码是交互式的)。当我输入pico 时,我得到“不支持重定向”。不过,bc 不会挂起。 python -i 打开一个交互式会话。

我尝试了不同的终端模拟器,得到了相同的结果。我试过 Console 和 Mintty。因此,我相信这是sh 的问题,而不是终端模拟器的问题。

我正在运行 Vista。我在运行 Windows 7 的工作 PC 上安装了 msys,在 msys 上运行交互式程序没有任何问题。

我读到这是expected behavior,但这曾经有效。我在想有些安装损坏了一些东西。我什至尝试重新安装 msys,我得到了相同的结果。由于某种原因,我也无法进行系统还原。

有什么线索吗?

这是一些示例输出:

$ python
<ctrl-C> from this

$ mysql -u root -p
Enter password: ****
<ctrl-C> from this

这次我使用了控制台。在“Shell:”文本框中,我输入了C:/msys/1.0/bin/sh.exe --login -i 当我按下回车键时,添加了一个换行符,即终端滚动。同样的事情发生在 msys 提供的终端上。这以前可以工作。此外,我在另一台运行 Windows 7 的机器上安装了 msys,python 没有挂起。如果我使用python -i,则不会挂起。

这是从 cmd 运行 sh 的输出:

C:\Users\jpp>sh
sh-3.1$
sh-3.1$
sh-3.1$ python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>

【问题讨论】:

您所说的一切都是完全错误的,您只是在滥用外壳。你怎么打开外壳?详细地告诉我你是如何做到的。 以下是我打开 shell 的方法:C:\msys\1.0\msys.bat -norxvt 这是 msys 提供的快捷方式。 msys.bat 也是msys提供的批处理文件;我没有修改它。如果我使用控制台,我在 Edit->Settings->Shell 中设置 `C:/msys/1.0/bin/sh.exe --login -i` “如果我输入python,程序就会挂起” - 举个例子,我该如何重现它。 我不确定如何指示程序挂起,但我已经包含了输出。 所以,如果我理解正确的话,MSYS 发生了一些事情,尤其是在您当前的机器上,也就是说,以前很好,但现在不是了。此外,在其他机器上一切正常。是这样吗? 【参考方案1】:

您尝试过 winpty (https://github.com/rprichard/winpty) 项目吗?有关详细信息,请在此处查看我的答案:https://***.com/a/23164362/1034436

您的问题似乎与我的 mysqlhgpython 相似,但与您不同的是,我没有一个没有 winpty 的例子。

【讨论】:

以上是关于msys 没有以交互方式打开程序的主要内容,如果未能解决你的问题,请参考以下文章

MSYS shell 保持脚本文件打开,防止修改

我在windows下安装了MinGW和msys,并在桌面上有了mingw shell的图标,请问我怎么才能应用vim来写程序呢

如何在没有 MSYS2 的 Windows 上构建 GTK+3 程序?

当应用程序处于终止状态而没有用户交互时如何清除本地通知。

如何(以编程方式)判断是不是有/没有任何支持打开特定文档类型的注册应用程序?

msys2 不会将驱动程序文件夹识别为有效