我想做的是一旦执行 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
.