我在Jenkins CI服務器上正在使用一些構建腳本。爲了保持組織性,我傾向於將作業中的每個「Execute Shell」部分縮小並隔離在範圍內。在Jenkins的「Execute Shell」部分之間維護配置變量
比方說,我正在建立一個字符串值,我希望以後在我的工作中的各個地方使用。 (例如與標籤,日期格式等相關的標籤,消息的名字......)
Execute Shell #1
# Utilizing Multiple Lines and temporary variables for readability
tagName="$tagName_Sub1 $tagName_Sub2 $tagName_Sub3"
Execute Shell #2
# Build Script - tagName is an argument to my build script
run build_job $tagName
Execute Shell #3
# Tag Git
git tag -a $tagName
Execute Shell #4
# Something else
echo "Hello World, $tagName"
它看起來像你真正想要的是一個數組,而不是一個字符串。考慮*定義一個數組:'tagNames =(「$ tagName_Sub1」「$ tagName_Sub2」「$ tagName_Sub3」)',然後用'「{{tagNames [@]}''適當地使用它。 –
否則,當您嘗試使用帶有文字空間的標籤名稱時,會出現非常不愉快的時間,並且非空格字符已臨時添加到IFS中,或者可以解釋爲glob匹配文件系統內容。 –
...參見http://mywiki.wooledge.org/BashFAQ/050 - 該處的警告和建議適用於任何情況,其中'$ foo'(不包括雙引號)被用作命令行生成的一部分。 –