我正在为 gitlab ci/cd 变量苦苦挣扎。我看到了很多相互矛盾的例子。无论如何,我想知道的是如何在脚本外部和内部使用变量。
例如,在作业配置中,我可以使用 bash 命令在脚本部分分配变量吗?
some-job:
variables:
SOME_VAR: ''
script:
- SOME_VAR = $(<file_with_a_line_of_text.txt)
在上述情况下,我不确定我是否可以做到这一点。但我需要用文件内容(即工件)填充变量。另外,我什么时候在变量前使用“$”?我看到的一些使用这些格式的例子:"SOME_VAR" #in quotes, no dollar sign
"${SOME_VAR}" #in quotes, with dollar sign and wrapped with curly braces
${SOME_VAR} #no quotes, with dollar sign and wrapped with curly braces
$SOME_VAR #i.e. without the double quotes or curly braces
SOME_VAR #i.e. without the double quotes, dollar sign, and curly braces
我可以在示例中看到如此多的用法变化,但不知道何时使用每种样式。而且我在网上找不到一个使用 bash 命令在脚本中设置自定义变量的示例。
最佳答案
当我在 bash 中设置变量时,我总是在 =
周围没有空格的情况下进行设置:
VAR1="some string"
VAR2=23
VAR3=true
VAR4=$(cat /path/to/file.txt)
让我们一次一个地浏览这些示例:$(#command)
. 现在让我们使用它们:
echo $VAR1
# some string
echo "This is my variable $VAR1"
# This is my variable some string
echo "This is my variable ${VAR1}"
# This is my variable some string
echo ${VAR1}
# some string
echo "Error code ${VAR2}A"
# Error code 23A
echo "Error code $VAR2A"
# Error code --- Note: the variable $VAR2A dosn't exist
echo "Error code ${VAR2}${VAR1}"
# Error code 23some string
echo VAR1
# VAR1
echo "VAR1"
# VAR1
这说明了不同形式之间的差异,但通常,您使用 $+variable-name
引用变量的值。 .做"SOME_VAR"
或 SOME_VAR
只是打印出字符串“SOME_VAR”(即,根本不引用变量)。$SOME_VAR
的区别和 ${SOME_VAR}
是后者让你在变量之前或之后直接有其他内容时使用它而不会出错。
关于bash - 如何在 gitlab ci/cd 中使用自定义变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66862537/