无法在詹金斯管道作业中重定向 terragrunt 输出

Cant redirect terragrunt output within a jenkins pipeline job

我有一个 jenkins 多分支管道,其中我 运行 terrag运行t 代码,为了清理输出日志我想重定向 terrag运行t 销毁输出到 txt 文件并存档。

本地一切正常,但在 jenkins 上 txt 文件是空的

我尝试过:

destroy > file.txt
destroy >> file.text
destroy 2>&1 >> file.txt
destroy >> file.txt 2>&1
destroy |& sed 's/\x1b\[[0-9;]*m//g' &>> file.txt

最后一个是同事推荐的,可能与颜色输出有关。

工作范围:

sh "touch file.txt"

locations.each {
 dir(it){
  sh 'terragrunt destroy 2>&1 >> file.txt'
 }
}

不确定还能尝试什么,我看过的所有其他方法似乎也仍然输出到控制台,这违背了清理控制台输出以提高可读性的目标。

What's the difference of strings within single or double quotes in groovy?

所以这应该有效

sh '''
  cd LOCATION
  terragrunt destroy 2>&1 >> file.txt
'''

所以在多次尝试之后,我能够让它工作......有点

我必须为每个销毁命令创建一个 txt 文件,看起来重定向和追加不起作用