Linux 标准文件描述符
描述符 缩写描述
0 STDIN 标准输入
1 STDOUT 标准输出
2 STDERR 标准错误
3-9  应该是扩展的标准输出(待验证)

命令行重定向

ls -al existfile notexitfile > outfile > errlog

解释

ls -al这个命令不需要解释了
exitfile配合前面的ls,列出 exitfile 文件的信息
notexitfile配合前面的ls,列出 notexitfile 文件的信息
1> outfile将标准输出放到 outfile 文件中,可以使用cat outfile 查看内容
2> errlog将错误信息放到 errlog 文件中,可以使用 cat errlog 查看内容
脚本重定向 shell 中使用如下命令
echo "this is an error" >&
echo "this is normal output"
解释
第一个echo,会将 this is an error 这句话输出到标准错误中
第二个,则是使用的系统默认,输出到标准输出中,也就是我们能在执行脚本的时候看到的内容。
如果将这个脚本保存为 test.sh,执行下面的命令
./test.sh > errlog

再使用

cat errlog

就可以看到 this is an error 这句话了。

如果在 test.sh 脚本中第一句增加如下脚本:

exec >errlog
直接执行 ./test.sh 命令,在errlog中也会看到内容。
如果在脚本中使用

exec >errlog

这种形式,那么所有的错误都会输出到 errlog 中,可以使用

exec >&-

命令取消这种重定向。

05-11 17:48