我尝试执行以下操作:
#!C:\cygwin\bin\bash.exe
ls ${WORKSPACE}
但是没有找到ls(即使它在Windows路径上)。有没有办法设置它?
更新:换句话说,我希望能够设置一个使用cygwin bash的构建步骤而不是像this page这样的windows cmd,向您展示如何使用Python。< / p>
答案 0 :(得分:5)
请将cygwin
的{{1}}目录放在bin
。
如果您不知道该怎么做(PATH
- &gt; Control Panel
- &gt; System
- &gt; Advanced
),请参阅:{{ 3}}
答案 1 :(得分:4)
那个shell脚本有两个错误:hash-bang行应该是“#!/ bin / bash”,$ {WORKSPACE}不是shell变量。 Hudson有一堆自己的变量,这些变量在你指定运行的命令中扩展(即当你在web gui中添加命令时)。
如果要在Cygwin命令行上运行Hudson构建步骤,则需要确定Hudson运行的命令以及在哪个目录中。
要提供更具体的答案,您需要向我们展示您的项目配置方式以及您希望单独运行的步骤。
答案 2 :(得分:2)
如果cygwin的bin文件夹在您的路径中,以下内容适用于我:
#!/bin/sh
ls ${WORKSPACE}
我发现除非你重新启动服务器,否则Hudson不会选择环境变量。
答案 3 :(得分:1)
您可能想尝试提供ls的完整路径
/cygdrive/c/cygwin/bin/ls
答案 4 :(得分:1)
另一件似乎有用的事情就是使用它:
#!C:\cygwin\bin\bash.exe
export PATH=$PATH:/usr/bin
ls
但是不必修改每个脚本的路径会很好。
答案 5 :(得分:0)
你有没有想过power shell?尽管我喜欢cygwin,它总是有点片状,PowerShell是一个坚固的全功能shell在windows上,另一个选项是Windows Services for UNIX它给你korn shell或c shell不如bash但它得到了完成工作
答案 6 :(得分:0)
您需要将--login
(又名-l
)选项传递给bash
,以便它会获取Cygwin的/etc/profile
并设置PATH
变量正确。这将导致当前目录更改为默认的“home”,但您可以在运行CHERE_INVOKING
之前将环境变量1
设置为bash -l
,如果您将保留在当前目录中需要保留它。