此脚本工作:
!#/bin/bash gerrit_query_output=$(ssh -p 29418 my_review-server.com gerrit query --format=JSON --commit-message change:66664 | head -n 1) commit_message=$(echo $gerrit_query_output | python -c "import sys, json; print json.load(sys.stdin)['commitMessage']" | grep -v ^Change-Id:) echo "commit msg= $commit_message"
gerrit query命令中是否有只打印第一行的选项,以便避免 | head -n 1 在第2行?如果gerrit\u query\u输出 {"type":"stats","rowCount":1,"runTimeMilliseconds":9,"moreChanges":false} 作为第二行。
| head -n 1
{"type":"stats","rowCount":1,"runTimeMilliseconds":9,"moreChanges":false}
有没有更好的方法可以在没有 Change-Id: 线路,所以我可以避免 | grep -v ^Change-Id:
Change-Id:
| grep -v ^Change-Id:
1) 使用“ jq “代替phthon来获取提交消息:
ssh -p 29418 GERRIT-SERVER gerrit query --format=JSON --commit-message change:CHANGE-NUMBER | jq -r --raw-output '.commitMessage // empty'
2) 这是不可能的。