最近程式碼釋出要遷移到 jenkins,需要寫一個構建指令碼模板提供給研發人員,用python寫可能對研發和測試提高了使用門檻,只能用shell了
- 陣列
百度了一下發現 shell使用的陣列定義是用括號起來的,不同元素之意用空格分開,ex: test.sh arr=('aa' 'bb' 'cc')
執行 sh test.sh的時間老是報這個陣列的括號語法錯誤Syntax error: "(" unexpected
,百度了一下發現是shell的原因
使用 bash test.sh就沒有問題了,使用 ${arr[0]} 來取值 - 字串擷取
在 git 倉庫裡 使用git checkout -f commitid
,結果如下:HEAD is now at 9f212321... test deploy script
目的是想要獲取 commit 提交資訊的,因為第一次拉程式碼執行這個命令時,在這行上面還會有其它資訊,所以在取最後一行,最後一行 hash(9f212321...) 後面的內容就是我們想的提交資訊,使用命令:hash_msg=`git checkout -f ${commit_hash} 2>&1 | tail -1` hash_msg=${hash_msg#*...} echo "Commit message: ${hash_msg}"
使用管理的加上 tail -1 來獲取最後一行,如果沒有加上 2>&1 這個最後一行是無法賦值給 hash_msg的,具體原因還不明,最後使用
${hash_msg#*...}
來獲取資訊,# 表示運算子,*...
表示從左到右匹配...
,擷取...
後面的字元,參考 https://baijiahao.baidu.com/s?id=160642549...
本作品採用《CC 協議》,轉載必須註明作者和本文連結