[英]redirect sh script output to two logs, one with -x and one without
是否可以運行一次腳本並將其寫入兩個日志。 一個日志將被詳細描述,並具有-x選項的輸出。 其他日志將不作詳細說明,僅顯示常規輸出,而沒有-x選項?
set -x
有一個很棒的東西,它的輸出實際上不是打印到stdout
而是打印到stderr
。
因此,如果你有
myscript.bash 1> log 2> xlog
在腳本中使用set -x
,因此log
包含常規輸出,而xlog
則輸出調試命令+ <cmd>
和錯誤。
如果您想要一個包含所有輸出的文件,而只包含常規輸出的文件,則可能會更加困難,我認為這需要在末尾編輯日志。 這是一個接受另一個腳本運行的包裝腳本:
#!/bin/bash
set -x
. $1 &> full.log
set +x
sed '/^+.*/d' full.log > out.log
你在哪里打電話
wrap.sh myscript.sh
這樣做的缺點是刪除以+
開頭的任何行,這可能足夠,也可能不夠。 使用進程替換可能會有更好的解決方案,但我想不出一個可以保留stdout
和stderr
之間的順序的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.