当我在变量名中使用连字符时,我的构建失败,但在将其更改为下划线时成功了。
错误是这样的,但我可以在在线工作区浏览器中看到它是有效的,如上所述,它成功地使用下划线!
15:55:25 + MY-DISTRO=/home/jenkins/workspace/build-prod/my-distro
15:55:25 /tmp/hudson6751264218812911564.sh: line 3: MY-DISTRO=/home/jenkins/workspace/build-prod/my-distro: No such file or directory
Jenkins变量名称的有效字符是什么,以及记录在哪里?
答案 0 :(得分:1)
根据您粘贴的日志中的临时脚本的.sh
扩展名判断,我假设您使用了Jenkins中的Execute shell
构建步骤 - 所以在这种情况下"有效"变量名称表示linux shell脚本中的变量(确切的shell类型可能因本地配置而异) - 请参阅例如关于linux上允许名称的this线程。
如果你有一个Windows slave,并使用Execute Windows batch command
构建步骤,你当然必须检查windows变量名称的规则。
另请注意,在其他地方使用的变量作为这些和类似的构建步骤可能会遵循完全不同的规则(尽管有时它们会重叠)。例如:如果插件使用Token Macro Plugin来评估表达式,则必须使用${ENV,var="VARIABLENAME"}
引用环境变量。
答案 1 :(得分:0)
Jenkins是基于java的。最有可能它接受java variable convention。我建议避免在变量名中使用$,因为基于unix的操作系统对它的处理方式不同。
答案 2 :(得分:0)
Atilla说了什么,但也避免使用点(.
)。