Jenkins는 스크립트에서 오류를 어떻게 포착합니까?

Jenkins는 스크립트에서 오류를 어떻게 포착합니까?

내가 하고 싶은 일은 일단 source.... 명령을 실행하고, 오류가 발생하면 임시 파일에 넣고 싶은 것입니다. 여러 가지 방법을 시도했지만 성공하지 못했습니다.

    def responseValue = sh(script: """#!/bin/bash
    set +x
    source /etc/runScript.sh> /dev/null 2>&1 >temp.txt
    echo \${${someVar}}
    """, returnStdout: true)
     def foundValue =  readFile(file: "temp.txt").trim()
     echo "value is ${foundValue}"
     //also tried source /etc/runScript.sh  2>&1> /dev/null >temp.txt

답변1

리디렉션 순서가 중요합니다.

source /etc/runScript.sh> /dev/null 2>&1 >temp.txt

>/dev/null표준 출력을 비트버킷으로 리디렉션합니다.

2>&1표준 오류를 표준 출력과 동일한 위치 및 비트버킷으로 리디렉션합니다.

>temp.txt표준 출력을 파일로 리디렉션 temp.txt하고 표준 오류를 비트버킷으로 리디렉션합니다.

목표를 달성하는 안전한 방법은 각 스트림을 다른 파일에 저장하는 것입니다.

source /etc/runScript.sh >/dev/null 2>temp.txt

표준 출력을 보내고 /dev/null표준 오류를 temp.txt.

관련 정보