Bash 中将 stderr 和 stdout 重定向到一个file

来源:互联网 发布:淘宝送柬埔寨的100元 编辑:程序博客网 时间:2024/05/16 05:59

例如有一个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