创建一个请求参数的 cygwin 脚本快捷方式

创建一个请求参数的 cygwin 脚本快捷方式

我为 cygwin 创建了一个脚本,并按照最后说明设置了一个快捷方式本教程

尽管如此,我的脚本必须接收变量参数,并且设置它的方式要么像没有传递任何参数一样运行,要么如果我在脚本路径后设置了任何内容,它都会将其视为文字参数。

考虑如下脚本(echo.sh):

#!/bin/bash    
echo "this"$1
sleep 30

我的快捷方式中的目标:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh'

当我单击快捷方式时,它已经打印了“这个”并进入休眠状态。我试过:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh $1' #file not found
C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh' $1 #prints 'this$1'

答案1

正如评论中所述,快捷方式不能处理变量。

您可以创建一个批处理脚本(script.cmd),它接收参数并调用 Cygwin。

C:\cygwin64\bin\mintty.exe /usr/bin/bash --login "/cygdrive/c/cygwin64/echo.sh" %1

您还可以将图标拖放到script.cmd,它会将拖放文件的路径作为参数接收。不过,您必须注意 Windows <-> Cygwin 路径转换 ( cygpath)。

相关内容