我为 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
)。