您的位置:首页 > 运维架构 > Shell

shell脚本中的“2< " ">&2" "&>”

2016-07-04 10:50 911 查看
Linux标准文件描述符:

文件描述符缩写描述
0STDIN标准输入
1STDOUT标准输出
2STDERR标准错误
标准输入和标准输出指的就是键盘和显示器。

Linux Shell参数替换 http://www.linuxidc.com/Linux/2013-06/85356.htm
Shell for参数 http://www.linuxidc.com/Linux/2013-07/87335.htm
Linux/Unix Shell 参数传递到SQL脚本 http://www.linuxidc.com/Linux/2013-03/80568.htm
Shell脚本中参数传递方法介绍 http://www.linuxidc.com/Linux/2012-08/69155.htm
Shell脚本传递命令行参数 http://www.linuxidc.com/Linux/2012-01/52192.htm
当文件描述符(0,1,2)与重定向符号(<)组合之后,就可以重新定向输入,输出,及错误。

command 2>file1
命令执行的错误信息保存到了file1文件中。显示屏只是显示正确的信息。

command 1>file1 2>file2
命令执行后,没有显示。因为正确输出到file1,错误定向到file2

command &>file1
命令执行后,输出和错误都定向到file1中

在shell脚本中,可以定义“错误”输出到STDERR指定的文件.需要在重定向符和文件描述符之间加一个and符(&)

cat test
#!/bin/bash
echo " this is ERROR ">&2
echo "this is output"
$
运行脚本

[root@localhost
~]#./test
2>file1
thisis output
[root@localhost
~]# cat file1
thisis ERROR

可以再脚本中使用exec命令:

exec1>file1
exec2>file2
echo " this is ERROR ">&2
echo "this is output"
运行如上脚本,则输出都在file1和file2中。

也可以使用exec 0<file1,从文件1中读取输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: