Debian 的 /bin/sh 是 dash,没有 pipefail,一上来就 `Illegal option -o pipefail`。 在 set 之前加一行守卫,非 bash 就 exec 换 bash 重新执行(只用 dash 也认的语法)。 实测:本机 /bin/sh 指向 bash,所以这条得在容器里的真 dash 上验 —— 带守卫的版本正常往下跑(停在 docker/.env 不存在,因为只挂了脚本没挂仓库); 去掉守卫的对照版本在 dash 下直接 Bad substitution + 语法错误。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5.9 KiB
Executable File
5.9 KiB
Executable File