sh
コマンドの出力をGroovy変数に設定することは可能ですか?代わりにコマンドのステータスに設定しているようです。
入力例:
node {
stage "Current Date"
def curDate = sh "date"
echo "The current date is ${curDate}"
}
結果は次のようになります。
Entering stage Current Date
Proceeding
[Pipeline] sh
[workspace] Running Shell script
+ date
Tue May 10 01:15:05 UTC 2016
[Pipeline] echo
The current date is 0
The current date is 0
を表示していますが、shコマンドで出力されたThe current date is Tue May 10 01:15:05 UTC 2016
を表示したいのですが。私はこれについてすべて間違っていますか?
はい、sh
は終了ステータスを返しています。現在の最善の策は次のとおりです。
sh 'date > outFile'
curDate = readFile 'outFile'
echo "The current date is ${curDate}"
補遺:この回答が書き込まれた後、新しいオプションがsh
ステップに追加され、returnStdout: true
を使用して、sh
呼び出しから結果文字列を取得します。