Gitlab Tee:折叠的多行命令和无法识别的选项:追加
Gitlab Tee: collapsed multi-line command & unrecognized option: append
在我的 GitLab CI 文件中,我有一个从 "Publish npm packages instruction"、
复制的文件
before_script:
- |
{
echo "@${CI_PROJECT_ROOT_NAMESPACE}:registry=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/"
echo "${CI_API_V4_URL#https?}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}"
} | tee --append .npmrc
当我在 Alpine 中尝试 运行 这个 Linux 我得到了。
$ { # collapsed multi-line command
tee: unrecognized option: append
BusyBox v1.31.1 () multi-call binary.
Usage: tee [-ai] [FILE]...
Copy stdin to each FILE, and also to stdout
-a Append to the given FILEs, don't overwrite
-i Ignore interrupt signals (SIGINT)
道理很简单,tee有两种实现方式,
- Alpine 使用的 Busybox 有
tee
,但不提供 --append
。 它确实提供了一个 -a
选项(附加的缩写),定义为 “附加到给定的文件,不要覆盖”
- GNU CoreUtils provides a copy of
tee
too 它有 --append
您在这里使用的。它也被定义为 “附加到给定的文件,不要覆盖”。但是作为shorthand,GNU Tee也提供了别名是-a
.
所以简而言之,如果您希望某些东西与 Alpine 和 BusyBox 以及发布 GNU Tee 的发行版兼容,那么请使用 -a
(两者都支持)而不是 --append
(仅支持在 GNU Tee 中)。
在我的 GitLab CI 文件中,我有一个从 "Publish npm packages instruction"、
复制的文件before_script:
- |
{
echo "@${CI_PROJECT_ROOT_NAMESPACE}:registry=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/"
echo "${CI_API_V4_URL#https?}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}"
} | tee --append .npmrc
当我在 Alpine 中尝试 运行 这个 Linux 我得到了。
$ { # collapsed multi-line command
tee: unrecognized option: append
BusyBox v1.31.1 () multi-call binary.
Usage: tee [-ai] [FILE]...
Copy stdin to each FILE, and also to stdout
-a Append to the given FILEs, don't overwrite
-i Ignore interrupt signals (SIGINT)
道理很简单,tee有两种实现方式,
- Alpine 使用的 Busybox 有
tee
,但不提供--append
。 它确实提供了一个-a
选项(附加的缩写),定义为 “附加到给定的文件,不要覆盖” - GNU CoreUtils provides a copy of
tee
too 它有--append
您在这里使用的。它也被定义为 “附加到给定的文件,不要覆盖”。但是作为shorthand,GNU Tee也提供了别名是-a
.
所以简而言之,如果您希望某些东西与 Alpine 和 BusyBox 以及发布 GNU Tee 的发行版兼容,那么请使用 -a
(两者都支持)而不是 --append
(仅支持在 GNU Tee 中)。