Shell 之 重定向


1.基本概念

#标准输出:命令执行正确后,所回传的正确信息代码为1
#标准错误输出:命令执行错误,所回传的错误信息代码为2
#标准输入,代码为0

2.重定向常用符号使用方法
cmd1 | cmd2 #将cmd1d标准输出作为cmd2的标准输入
> filename #将标准输出重定向到文件filename中,若是filename中原有内容,便会被新的内容覆盖。
>>filename #将标准输出追加到filename文件中。
< filename #将filename文件的内容作为标准输入
<< EOF  #连续输入一些内容,当输入EOF时表示输入结束,EOF可以为任意字符串
1> filename :#以覆盖的方法将正确的数据输出到filename文件中
1》filename #以追加的方法将正确的数据输出到filename文件中
2> filename #以覆盖的方法将错误的数据输出到filename文件中
2》 filename #以追加的方法将错误的数据输出到filename文件中
> filename 2>&1 #将正确的数据和错误的数据输出到同一个文件
&> filename #同上
>file1 2>file2 #正确输出到file1,错误的输出到file2

3.举例:

[root@zhu2 ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin #管道的使用


[root@zhu2 ~]# cat zhu.txt
dan yuan ren chang jiu,
qian li gong chan juan.
[root@zhu2 ~]# cat zhu.txt > jiang.txt
[root@zhu2 ~]# cat jiang.txt
dan yuan ren chang jiu,
qian li gong chan juan. #重定向


[root@zhu2 ~]# echo "zhu jiang tao" > jiang.txt && cat jiang.txt
zhu jiang tao #覆盖
[root@zhu2 ~]# echo "hao are you" >>jiang.txt && cat jiang.txt
zhu jiang tao
hao are you #追加


[root@zhu2 ~]# caa jiang.txt
-bash: caa: command not found
[root@zhu2 ~]# caa jiang.txt >zhuzhu
-bash: caa: command not found
[root@zhu2 ~]# caa jiang.txt 2>zhuzhu
[root@zhu2 ~]# cat zhuzhu
-bash: caa: command not found#标准错误输出

[zhu@zhu2 ~]$ find /home -name .bashrc > 88.txt
find: /home/zhuzhu: 权限不够
[zhu@zhu2 ~]$ find /home -name .bashrc > 88.txt 2>99.txt
[zhu@zhu2 ~]$ ll
总计 12
-rw-rw-r-- 1 zhu zhu 18 10-23 15:36 88.txt
-rw-rw-r-- 1 zhu zhu 33 10-23 15:36 99.txt
#标准正确输出和错误输出存到不同的文件
########################################################
[zhu@zhu2 ~]$ find /home -name .bashrc &>8899.txt
[zhu@zhu2 ~]$ find /home -name .bashrc >8888.txt 2>&1
[zhu@zhu2 ~]$ cat 8899.txt
/home/zhu/.bashrc
find: /home/zhuzhu: 权限不够
[zhu@zhu2 ~]$ cat 8888.txt
/home/zhu/.bashrc
find: /home/zhuzhu: 权限不够
#标准正确输出和错误输出存到同一文件

[root@zhu2 ~]# cat <<zhu
> ni shuo wo lia chang xiang yi
> ni ke zhi dao wo de xin
> zhu #输到此处,自动结束相当于ctrl+d
ni shuo wo lia chang xiang yi
ni ke zhi dao wo de xin

推荐阅读:

Linux/Unix shell 脚本中调用SQL,RMAN脚本

Linux/Unix shell sql 之间传递变量

Linux命令之sleep - 延迟指定时间

Linux下Shell编程——sed命令基本用法

Linux下Shell编程——grep命令的基本运用

相关内容

    暂无相关文章