linux下shell重定向

举例说明

ls -l > out.file 2>&1 &

解释:
ls -l > out.file //将ls的输出重定向到文件out.file

2>&1 //在shell中,文件描述符通常是:STDIN,STDOUT,STDERR,即:0,1,2,由此可以看出,它将ls -l > out.file在输出过程中产生的错误信息也放在了STDOUT,即:1中,你可以作实验,如果命令产生了错误,那么错误信息也就在out.file中.

其中可能有点奇怪的是&1,既然>左侧的2可以表示STDERR,为什么右侧不能直接使用1呢?

其实,如果右侧直接使用1,会发现错误信息不在out.file,而是在文件1中,所以这里的&起到了类似转义的作用

:~$ sudo ./test1.sh p1 p2 p3 p4 >out.file 2>1
:~$ ls
1    out.file   test1.sh
:~$ cat 1
sudo: ./test1.sh: command not found
:~$ cat out.file 
:~$ sudo ./test1.sh p1 p2 p3 p4 >out.file 2>&1
:~$ cat 1
sudo: ./test1.sh: command not found
iie@Monitor:~$ cat out.file 
sudo: ./test1.sh: command not found
iie@Monitor:~$ 

因为test1.sh没有执行权限,所以这里会输出错误:sudo: ./test1.sh: command not found

最后的& ,不用说,是放在后台运行.

参考:http://www.linuxsir.org/bbs/thread40501.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值