このスクリプト変数が引き続き「null」を表示するのはなぜですか?

このスクリプト変数が引き続き「null」を表示するのはなぜですか?

次のスクリプトがあります。

def String Service_version = sh "cd ./projects/onehome && pwd && cat package.json | grep version"
             echo "Service_Version_update: $Service_version"
             echo "My_Version is : ${Service_version}"

出力は次のとおりです

cd ./projects/onehome
13:47:43  + pwd
13:47:43  /home/jenkins/agent/workspace/_apps_onehome_feature-AOTF-11540/projects/onehome
13:47:43  + cat package.json
13:47:43  + grep version
13:47:43  "version": "1.0.400",
13:47:43  [Pipeline] echo
13:47:43  Service_Version_update: null
13:47:43  [Pipeline] echo
13:47:43  My_Version is : null

なぜ${Service_version}印刷されますかnull

答え1

まとめましょう:

## Ensure were in projects directory
cd projects/onehome/

## Switch to jenkins directory
$jenkins = pwd
$jenkins_output = "The current Jenkins Directory is: $jenkins"
echo $jenkins_output

## Create version Number
versionNumber = grep version package.json 
$serviceVersion = "The Current Service Version is: $versionNumber"
echo $serviceVersion

更新が必要かどうかを比較しようmyVersionとしているようです。serviceVersion現在のコードで何をしたいのかを私がどのように解釈するかに応じて、あなたのサービスバージョンは常に私のバージョンと同じです。 myVersionを確認するために他の方法を使用することもできます。

関連情報