$command 2>&1|tee log/$job_name-$now.log &
$command
表示要跑的命令祭钉,比如 python train.py
2>&1
參考
https://www.runoob.com/linux/linux-shell-io-redirections.html
https://www.jb51.net/article/169778.htm
其中 2
表示標(biāo)準(zhǔn)錯(cuò)誤輸出瞄沙; 1
表示標(biāo)準(zhǔn)輸出;>&
將兩側(cè)的標(biāo)準(zhǔn)輸出合并慌核;|
管道距境,將 |
前面的輸送到 |
后面
tee
命令
從標(biāo)準(zhǔn)輸入中復(fù)制到每一個(gè)文件,并輸出到標(biāo)準(zhǔn)輸出垮卓。
也就是說(shuō) tee
命令將管道送來(lái)的輸入 一方面輸出到標(biāo)準(zhǔn)輸出
屏幕垫桂,一方面輸出到后面的文件 log/log/$job_name-$now.log
最后面的 &
表示將這個(gè)任務(wù)放到后臺(tái)執(zhí)行,這個(gè)命名可以用于大文件復(fù)制終端卡死的情況扒接,這樣就能放到后臺(tái)復(fù)制伪货,就可以立即繼續(xù)在同一個(gè)終端上工作了们衙,甚至關(guān)閉終端也不影響這個(gè)任務(wù)的正常執(zhí)行。
參考: https://linux.cn/article-10587-1.html?pr
這樣就可以將 標(biāo)準(zhǔn)錯(cuò)誤輸出 和 標(biāo)準(zhǔn)輸出 都進(jìn)行記錄碱呼,而普通的記錄log的方法在程序運(yùn)行正常時(shí)是能記錄的蒙挑,但是當(dāng)程序報(bào)錯(cuò)時(shí)出錯(cuò)的原因則不能記錄