Linux输入输出重定向

1. 请帮忙注解一下下边的shell命令,其中的 "1>” "2>" "2>&1" 具体什么意思,有什么含义?(百度知道)

cat account_qtr.doc account_end.doc 1>accounts.out 2>accounts.err   把两个文件合并到accounts.out中
grep "standard"* > grep.out 2>&1
cat >>filetest 2>&1 <<MAYDAY
另:   exec 4<&0 0<stock.txt  ,这里的4<&0是什么含义

**************************************************************
1是标准输出
2是错误输出
> 和 >> 都是输出重定向符号。标准输出默认是打印到控制台,如果要导入到文件,就需要使用>或>>。> 会覆盖已有的文件内容,而>>会附加到已有内容之后。
< 和 << 是输入重定向符号。从文件中读取内容。
2>&1 是把错误输出导入(合并)到标准输出流中

grep "standard"* > grep.out 2>&1 就是将标准输出与错误输出一并送入grep.out文件中,写文件方式为覆盖写(>)。
cat >>filetest 2>&1 <<MAYDAY 就是从MAYDAY中读取文件内容,将标准输出与错误输出一并送入filetest文件中,写文件方式为附加写(>>)。

补充问题4<&0:
<和<<都是重定向输入
<0指标准输入路径
4<&0 指的是将文件描述符4指定为标准输入(实际可选4到9之间任意一个数字)
习惯上
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2
*******************************************************************************************************************
2. > /dev/null < /dev/null 2>&1
把标准输入也重定向了
/dev/null这个文件作为读的时候有个特点,就是一读,马上就返回0,意味着文件结束了
这区别就在于程序编写中判别标准输入啊,当没看到标准输入文件结束程序就不退出.
一旦标准输入是/dev/null,马上就看到标准输入结束了











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值