从 zip 中提取后使 shell 脚本可执行

从 zip 中提取后使 shell 脚本可执行

我有一个从 github 中提取并使用 TeamCity 构建到 zip 中的 shell 文件。

它通常在 Windows 机器上编辑并放入 github。

我需要这个 shell 脚本在解压后可执行。我该怎么做?目前我必须执行 chmod +x blah.sh

答案1

最快捷、最简单的解决方案可能是使用在运行解压缩后解决您的权限问题的 shell 脚本。

答案2

#! /bin/bash
#First argument ($1) would be the name of the file to be unzipped
#Second argument ($2) would be where to unzip the files to (absolute path)
unzip $1 -d $2
find $2 -name *.sh -print0 | xargs -0 chmod +x

只要您想要制作为可执行文件的文件始终是 *.sh,这种方法就行得通。否则,可以添加第三个参数 ($3) 并将其替换为 *.sh,但这样您就必须始终为每个存档输入要制作为可执行文件的文件的名称。

答案3

您应该使用 Unix zip 创建档案以保留 Unix 属性。

答案4

你使用的是什么 shell?我知道在 bash 中你可以定义自己的命令(通过别名),例如,有一次我创建了一个自定义命令,我调用了 cdsee,它接受一个参数(一个目录)并 cd 到它,然后立即 ls -lah。这使我的工作变得非常容易,因为我立即看到了该文件夹的内容。

同样,应该可以,甚至很容易,创建一个运行 unzip 命令的命令,然后立即 chmod +x。

不幸的是,我目前还不知道如何提取参数。但最简单的答案是使用 Linux 机器来执行原始 zip 作业,或者让您的自定义命令/别名自动执行 chmod。

相关内容