如何启动Mintty并运行脚本文件?

14

我写了一个简单的 CURL 并将其放在脚本文件中。

如果先运行 mintty,然后再运行“test.sh”,它可以很好地运行文件内的脚本。完美运行。

但是,如果尝试使用以下任何一条命令行运行 mintty,则无法运行。我是在 CMD 中运行这些命令。

C:\>c:\cygwin\bin\mintty.exe --exec '/cygdrive/c/cygwin/bin/test.sh'

C:\>c:\cygwin\bin\mintty.exe --exec '/bin/test.sh'

C:\>c:\cygwin\bin\mintty.exe --exec '/test.sh'

C:\>c:\cygwin\bin\mintty.exe --exec 'test.sh'

C:\>c:\cygwin\bin\mintty.exe --exec 'c:/test.sh'

C:\>c:\cygwin\bin\mintty.exe --exec 'c:\test.sh'

C:\cygwin\bin\mintty.exe /bin/bash -l 这行代码可以正常运行,但是加上“-e '/cygdrive/c/cygwin/bin/test.sh'”后,控制台窗口会打开1秒钟,然后就会关闭。 - layornos
4个回答

11

对于有兴趣的人...这里是解决方案

在Windows上为mintty创建一个快捷方式,目标如下

假设你的shell文件位于c:\cygwin\bin中

C:\cygwin\bin\mintty.exe /bin/bash -l -e '/cygdrive/c/cygwin/bin/test.sh'

1
我在 C:\cygwin64\bin\ 目录下找到了我的 mintty.exebash.exe - hobs

2

我也使用nkman提供的解决方案,但我添加了'-h always'选项,以便控制台保持打开状态,直到我按下Enter键才能查看发生了什么。因此,这是我的快捷方式的目标:

C:\cygwin\bin\mintty.exe -h always /bin/bash -l -e '/cygdrive/c/cygwin/home/Administrator/startup.sh'

2
尝试直接运行bash.exe(或者其他与cygwin一起安装的shell)。从Windows shell中,切换到您的cygwin安装目录并运行以下命令:
C:\cygwin\bin>bash.exe /cygdrive/c/cygwin/bin/test.sh

让shell脚本通过双击快捷方式运行的方法:

1)将命令放在一个.bat文件中。

test.bat
---------------------------------------------------------------------
c:\cygwin\bin\bash.exe /cygdrive/c/cygwin/bin/test.sh

---------------------------------------------------------------------

2) 使用 test.bat 作为目标创建快捷方式。

我尝试使用 bash.exe 和命令作为目标创建快捷方式。出于某种原因,这会导致错误。然而,在 .bat 文件中包装命令可以正常工作。奇怪吧。


1

我认为最好的解决方案:

调用正确的shell,没有不必要的窗口,并随后调用一个bash脚本。

  • 创建一个快捷方式到您的桌面上的mintty.exe

  • 编辑属性该快捷方式并更改目标(保留路径):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接