2017-03-03 158 views
5

重定向標準錯誤我有這個在我的Jenkinsfile:如何詹金斯管道

sh 'cat /opt/jenkins/workspace/JenkinsfileTest/testfile 2>/dev/null 

,但實際上它運行這樣的:

[JenkinsfileTest] Running shell script 
+ cat /opt/jenkins/workspace/JenkinsfileTest/testfile 

重定向部分消失了。

我的命令有什麼問題嗎?

+0

''''符號指示的是'bash -x'的調試輸出,所以它可能顯示命令的各個部分而不是整行,具體取決於它的評估方式(也可以嘗試像'cat .. 。| tee somefile.log'來檢查) – giorgiosironi

+0

我想要'2>/dev/null',因爲有時'/ opt/jenkins/workspace/JenkinsfileTest/testfile'不存在。這是可以接受的。但是當文件不存在時,我不希望它輸出'沒有這樣的文件或目錄'。有沒有辦法做到這一點? – Ardar

+1

'如果文件存在,test -e JenkinsfileTest/testfile && any_command'將只執行'any_command' – giorgiosironi

回答

0

不應該抑制錯誤輸出,而應該避免錯誤發生。所以在輸出之前先測試一下文件是否存在:

sh 'test -f testfile && cat testfile' 

應該做這個工作。