1

我尝试执行以下操作:

#!C:\cygwin\bin\bash.exe
ls ${WORKSPACE}

但这找不到 ls (即使它在 windows 路径上)。有什么办法可以设置吗?

更新:换句话说,我希望能够设置一个使用 cygwin bash 而不是 windows cmd 的构建步骤,就像这个页面向您展示了如何使用 Python。

4

7 回答 7

5

所以把你cygwinbin目录放在你的PATH.

如果您不知道如何操作 ( Control Panel-> System-> Advanced-> Environment Variables),请参阅:http://support.microsoft.com/kb/310519

于 2009-04-09T05:19:57.543 回答
4

该 shell 脚本有两个错误:hash-bang 行应该是“#!/bin/bash”,并且 ${WORKSPACE} 不是 shell 变量。Hudson 有一堆自己的变量,这些变量在您指定要运行的命令中扩展(即,当您在 web gui 中添加命令时)。

如果要在 Cygwin 命令行上运行 Hudson 构建步骤,则需要弄清楚 Hudson 运行什么命令以及在哪个目录中运行。

要给出更具体的答案,您需要向我们展示您的项目是如何配置的,以及您希望单独运行哪些步骤。

于 2009-04-08T20:41:58.957 回答
2

如果 cygwin 的 bin 文件夹在您的路径中,则以下内容对我有用:

#!/bin/sh
ls ${WORKSPACE}

我发现除非您重新启动服务器,否则 Hudson 不会选择环境变量更改。

于 2009-04-30T22:18:13.337 回答
1

您可能想尝试提供 ls 的完整路径

/cygdrive/c/cygwin/bin/ls
于 2009-04-08T20:55:41.967 回答
1

似乎有效的另一件事是使用它:

#!C:\cygwin\bin\bash.exe
export PATH=$PATH:/usr/bin
ls

但是最好不必修改每个脚本的路径。

于 2009-04-08T21:05:09.477 回答
0

您是否考虑过电源外壳?尽管我很喜欢 cygwin,但它总是有点不稳定,powershell 是 Windows 上功能齐全的可靠 shell,另一种选择是Windows Services for UNIX它为您提供的 korn shell 或 c shell 不如 bash 好,但它可以胜任完毕

于 2009-04-30T22:24:35.740 回答
0

您将需要传递--login(aka -l) 选项,bash以便它获取 Cygwin/etc/profile并正确设置PATH变量。这将导致当前目录更改为默认的“home”,但您可以在运行之前将环境变量设置CHERE_INVOKING为,如果您需要保留它,它将保留在当前目录中。1bash -l

于 2013-12-10T20:12:05.783 回答