【发布时间】:2019-12-05 06:01:03
【问题描述】:
我正在尝试运行一个非常简单的 sh 文件,该文件是我添加到我的项目中的,作为我的 Jenkins 构建的一部分。如果重要的话,我正在 Windows 上进行开发,每当构建到运行 sh 文件的行时,我都会不断收到 Permissions denied。
为什么会这样?
【问题讨论】:
我正在尝试运行一个非常简单的 sh 文件,该文件是我添加到我的项目中的,作为我的 Jenkins 构建的一部分。如果重要的话,我正在 Windows 上进行开发,每当构建到运行 sh 文件的行时,我都会不断收到 Permissions denied。
为什么会这样?
【问题讨论】:
检查 sh 文件的权限 - 它需要可由运行 Jenkins 构建的用户执行。
不幸的是,我对 Windows 不是很熟悉,但我知道最近的版本包含一个 Linux shell,所以这里是如何在 Linux 上做到这一点:
ls -l /path/to/example.sh
将向您展示如下内容:
-rwxr-xr-x 1 myuser my group 519 Mar 7 14:54 example.sh
输出中的第一列是文件权限,您至少在第一个位置寻找“x”,这意味着它可以由所有者执行(第三列中的值)。
如果您需要使文件可执行,请运行
chmod +x /path/to/example.sh
这将使任何用户都可以执行它。这并不总是一个好主意,但文件权限的完整主题在这里有点多;如果你想了解更多,这里是good reference。
【讨论】:
chmod +x example.sh
. example.sh