cygwin上的bash脚本 - 似乎在连续命令之间卡住了。

时间:2011-02-28 05:40:31

标签: bash cygwin

我正在使用bash脚本通过cygwin在Windows机器上运行多个应用程序(有些重复)。该脚本包含逐行启动这些应用程序的命令。大多数这些应用程序运行了很多分钟,很多次我发现第i + 1个应用程序即使在我的应用程序完成后也没有启动。在这种情况下,如果我在运行bash脚本的cygwin控制台中按输入,则下一个应用程序将开始运行。是因为cygwin上的bash存在任何问题吗?或者它是Windows操作系统本身的问题?你们有没有观察过bash + cygwin + Windows这样的问题?

感谢。

5 个答案:

答案 0 :(得分:0)

我想我以前见过这个。

而不是

somecommand

somecommand </dev/null

如果不起作用,请尝试

cmd /c somecommand

或试验其他重定向,例如

somecommand >/dev/null

答案 1 :(得分:0)

听起来您的shell脚本编码可能有问题; DOS(和Windows)使用 CR + LF 行结尾,而Linux使用 LF 结尾。尝试将文件另存为 LF

可能会发生什么:

当我在学校的笔记本电脑上运行Cygwin时,我遇到了shell脚本的急剧减缓,而不是在本机Linux环境中运行时。从GNU Autotools运行configure脚本时,这一点尤为明显。

  • 检查慢速驱动器的路径。 (来自Cygwin FAQ):
  

为什么Cygwin突然这么慢?

     

如果突然每个命令都需要很长时间,那么可能会尝试访问网络共享。您可能在PATH或启动文件中有过时的// c表示法。使用// c意味着联系网络服务器c,如果它不存在,这将大大减慢速度。

  • 您可能还想检查是否正在运行防病毒程序。防病毒程序在执行时会扫描每个可执行文件;即使是在运行过程中运行数百甚至数千个单独程序的简单shell脚本,这也会导致问题。

  • This mailing list post概述了将主/ usr / bin目录伪装载为cygexec所需的内容。我不确定那是什么,但我发现它有所帮助。

  • 如果您运行的是configure脚本,请尝试-C选项。

希望这有帮助!

答案 2 :(得分:0)

偶尔,我会得到这种行为,因为我不小心删除了脚本顶部的'she-bang',也就是说,删除了脚本第一行的#!/ bin / bash。

当父shell脚本调用缺少she-bang的子脚本时,更有可能发生这种情况!

希望这会有所帮助。

答案 3 :(得分:0)

有点长镜头,但我之前看到过一些类似的行为。

在Windows 2000中,如果在命令提示符窗口中运行的任何程序的某些文本被光标突出显示,它将暂停命令运行,您必须按Enter或清除突出显示才能继续命令提示符执行。

正如我所说的那样,一点点远射,但偶然的鼠标点击可能是你的问题......

答案 4 :(得分:0)

使用unix样式的换行符安装cygwin,并忘记这样的奇怪问题。

尝试将您的脚本保存为cygwin的“正确线条破碎式”。也就是说,使用您在安装时指定的样式。

以下是一些相关信息:

https://stackoverflow.com/a/7048200/657703