shell标准出错重定向到标准输出


shell标准出错重定向到标准输出
 
2>&1 是将标准出错重定向到标准输出
 
第二个问题很简单:
 
使用这个命令就可以实现:
 
 cat /etc/passwd | grep root | cut -d ":" -f1
 
实现的效果如下:
 
~$ cat /etc/passwd | grep root | cut -d ":" -f1 
 
root
 
你是这个意思把?
追问
对,就这个意思,还有另外一个&>这个运算符的意思是什么?请救一下。
回答
> 是输出重定向的意思。
> 是以覆盖的方式重定向
>> 是追加的方式重定向。
 
1代表标准输出,2代表错误信息输出.
 
&1 就代表的是标准输出。
 
最后一个& 符号,是后端执行的意思。
 
我找个例子,你耐心研究一下:
 
ls han
ls: 无法访问han: 没有那个文件或目录
 
执行
~$ ls han >1.txt 2>&1
 
在shell中没有任何显示
 
此时再执行~$ cat 1.txt 
ls: 无法访问han: 没有那个文件或目录
 
说明错误信息被重定向到1.txt 这个文件中了。
 
如果不加这个&
 ls han >1.txt 2>1
 
又会多出来一个 1 文件。
 
cat 1
ls: 无法访问han: 没有那个文件或目录
 
看到了把。&1 代表逻辑上的标准输出。 不加& ,那就会产生名为的1的文件
 

相关内容

    暂无相关文章