【发布时间】:2021-04-13 07:45:04
【问题描述】:
我在 GitLab CI/CD 中开发了一个管道。我的管道的最后一项工作是手动工作,我需要在工作表中输入一些信息。
这是一个例子:
我的问题是当我输入“我的密钥描述”之类的字符串时。使用此键/值开始工作后,我只能恢复“the”(这是我的键的第一个单词)。
我不明白为什么我无法恢复我所有的字符串。
重要的事情:我的工作开始一个 .sh 脚本
my job:
script:
- sh my_script.sh KEY=$key
when: manual
...
在这个脚本中,我“回显”我的变量键,我只得到“the”而不是“我的键的描述”
我是如何使用 my_script.sh 中的键值的?
for var in "$@"; do
eval "${var}"
done
# I only get key="the" instead of key="the description of my key"
【问题讨论】:
-
如果我输入我的值,如“the_description_of_my_key”,它会起作用。但我不想要'_'。人物。空格是问题的根源。
-
"cat" 不执行任何脚本。它只显示脚本。此外,如果您在脚本中运行“导出”,您将看到您输入的完整密钥(带空格)
-
是的。在我的代码中,我通过 ssh 执行它,这就是我复制它时出错的原因 ^^' 我已经导出了变量,例如: export KEY="$key" echo "$KEY" 但它根本不起作用
-
你可能有一个错误的 gitlab 版本。我们公司有版本 13.9.3(企业版),它正在使用我们的版本
-
对于 gitlab 版本仍然不适合我 -> 13.10.3(企业版)