You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新建shell脚本运行提示权限不足,如何让所有协作者无需单独授权即可执行?

解决方案

下面提供3种可落地的方案,按优先度排序:

方案1:提交脚本执行权限到Git(最推荐)

Git本身支持跟踪文件的可执行权限位,只要你本地给脚本赋予执行权限后正常提交推送到远程仓库,其他协作者拉取代码时会自动继承权限,无需手动修改:

  1. 本地给两个脚本添加执行权限:
    chmod +x scripts/extract.sh scripts/compile-languages.sh
  2. 查看Git是否识别到权限变更,执行如下命令可以看到对应脚本的权限位:
    git ls-files --stage | grep scripts/
    正常识别到执行权限的输出结果中,脚本的权限标识为100755(普通无执行权限的文件为100644)
  3. 直接提交变更并推送到公共代码库即可。

方案2:修改package.json脚本调用方式

不需要修改文件权限,也不用调整Git配置,只需在原有脚本前加sh命令,由shell解释器直接读取脚本内容执行,跳过对脚本本身的可执行权限校验:

"scripts": {
  "extract": "sh scripts/extract.sh",
  "compile:languages": "sh scripts/compile-languages.sh"
}

Windows环境下只要用户安装了Git Bash等支持sh命令的终端,也可以正常执行。

方案3:通过postinstall钩子自动赋权

如果以上两种方案都不适用,可以添加npm/yarn的安装后钩子,每次安装依赖时自动给脚本添加执行权限:

"scripts": {
  "extract": "scripts/extract.sh",
  "compile:languages": "scripts/compile-languages.sh",
  "postinstall": "chmod +x scripts/*.sh"
}

这个方案对Windows环境兼容较差,仅推荐团队成员都使用macOS/Linux开发时使用。

内容的提问来源于stack exchange,提问作者kastaplastislife

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:39:02