把你的命令后面加上 > log.txt 2>&1
例如之前的命令是 python train.py,修改后就是
python train.py >log.txt 2>&1
然后去 log.txt 里面看
输出就全部到 log.txt 了
如何在输出同时查看运行过程?
新建窗口
vim log.txt
就能看到。
Bash 中将 stderr 和 stdout 重定向到一个file
例如有一个bash的文件
$cat shell.sh
#!/bin/bash
echo "gggg"
rm kkdhkt
echo "end"
$ ./shell.sh > time 2>&1
$cat time
gggg
rm: cannot remove `kkdhkt': No such file or directory
end
这样就全部到一个文件 time中了 。
这样的话time中就有stderr的输出
或者另一中将stdin stderr都重定向到一个文件的方法是
$./shell.sh &> time
$./shell.sh 2> time
gggg
end
$cat time
rm: cannot remove `kkdhkt': No such file or directory
这样time中就只有stderr
$./shell.sh > time
rm: cannot remove `kkdhkt': No such file or directory
$cat time
gggg
end
但是在tee的使用的时候有点不同 要放在| 前面
$./shell.sh 2>&1 | tee time
gggg
rm: cannot remove `kkdhkt': No such file or directory
end
$cat time
gggg
rm: cannot remove `kkdhkt': No such file or directory
end
网友评论