KSH将stdout和stderr重定向到Linux或Unix上的文件
时间:2020-01-09 10:41:09 来源:igfitidea点击:
使用KSH时,如何在Unix中重定向错误消息?
如何在Linux或类似Unix的系统上使用KSH重定向stdout和stderr?
说明:使用KSH,SH和BASH时,您可以轻松地在Unix和Linux中重定向错误消息。
什么是stdout?
标准输出(stdout)只是命令用来将其输出写到屏幕上的标准输出。
用一个(" 1")数字表示。
什么是stderr?
标准错误(stderr)是默认错误输出设备,用于写入所有系统错误消息。
用两个(" 2")数字表示。
KSH重定向标准输出和标准错误
让我们来看一些基于Linux和Unix的常见示例。
如何将标准输出重定向到文件
重定向到文件的标准输出(stdout)如下:
command > file ls > /tmp/list.txt cat /tmp/list.txt
或者
command 1> file ls 1> /tmp/list.txt cat /tmp/list.txt
ls> /tmp/list.txt只是ls 1> /tmp/list.txt的快捷方式。
KSH将stderr重定向到文件
要将Linux上的标准错误消息重定向到名为errors.txt的文件,请执行:
command-name 2> errors.txt
确保将" command-name"替换为要运行的Unix命令,例如:
find / -name "resolv.conf" * 2> /tmp/errors.txt
使用cat命令查看存储在errors.txt文件中的错误:
cat /tmp/errors.txt
KSH将错误消息重定向到标准输出(stdout)
语法为:
command 2>&1 gunzip * 2>&1
如何将标准错误和标准重定向到文件
尝试以下语法:
command > file 2>&1 find / -name "nginx.conf" -print > command.out 2>&1
如何使用ksh隐藏或隐藏错误消息
只需使用:
command 2>& ls /nonexistanc ls /nonexistanc 2>&
如何将stdout和stderr都重定向到/dev/null
尝试:
command > /dev/null 2>&1 grep -R "something" /etc/ > /dev/null 2>&1 echo $?
总结
KSH重定向是指更改用于Unix命令的shell常规方法来处理stdout,stdin和stderr。
KSH使用以下符号进行重定向:
>
:重定向标准输出(覆盖)>>
:重定向标准输出(追加)<
:重定向标准输入2>
:重定向标准错误2>&1
:将stderr重定向到stdout