例如一个脚本dumb.sh的内容为
1 2 3 |
|
/bin/bash -x dumb.sh的结果为:
+idx=1
+echo 1
1
而且/bin/bash -x dumb.sh > trace.log后,trace.log内容仅为:
1
有什么办法将/bin/bash -x dumb.sh的整个结果保存下来么?
伊谢尔伦2017-04-17 13:41:14
處理方法:
1 |
|
原因:
用strace追蹤
1 |
|
結果:
1 2 3 4 5 6 7 8 9 10 |
|
可以看出+idx=1和+echo1是write(2,),這個是標準錯誤輸出,雖然打螢幕,但是>預設不會把這個內容寫入檔案。
如下這個指令可以把標準錯誤重新導向到1中
1 |
|
怪我咯2017-04-17 13:41:14
在man bash手冊中章節:CONDITIONAL EXPRESSIONS
,-x
的意思是:
1 2 |
|
參數-x
會列出shell執行語句的順序並列印。 +echo 1
這種語句並不是腳本的輸出,所以不能儲存到檔案中。