请帮忙注解一下下边的shell命令,其中的 "1>” "2>" "2>&1" 具体什么意思,有什么含义?
cataccount_qtr.docaccount_end.doc1>accounts.out2>accounts.err把两个文件合并到accounts.out中gre...
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是什么含义 展开
grep "standard"* > grep.out 2>&1
cat >>filetest 2>&1 <<MAYDAY
另: exec 4<&0 0<stock.txt ,这里的4<&0是什么含义 展开
4个回答
展开全部
>和>>都是重定向输出 ,1> 指标准信息输出路径(也就是默认的输出方式) ,2> 指错误信息输出路径 ,2>&1 指将标准信息输出路径指定为错误信息输出路径。操作方法如下:
1、首先将输入分割成关键字和运算符,服从引用的规则,这些符号会被分成元操作符,别名也会在这里扩展成元操作符。
2、变量名扩展,执行变量名的扩展,将这些扩展变成文件名,命令和参数的列表。可以参考shell的扩展和文件名的扩展。
3、执行必要的重定向,并将重定向的运算符和他们的对象,从参数列表中移除。
4、在前面的都是解析命令,最后这里就会执行命令了。
5、每个shell命令都可以选择等待他们完成,然后获取他们的返回状态是否正常(成功)。
展开全部
>和>>都是重定向输出
1> 指标准信息输出路径(也就是默认的输出方式)
2> 指错误信息输出路径
2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)
补充问题4<&0:
<和<<都是重定向输入
<0指标准输入路径
4<&0 指的是将文件描述符4指定为标准输入(实际可选4到9之间任意一个数字)
不知下面两句是否写得有点问题,或者是断章取义,总觉得前面可能有“|”符号
grep "standard"* > grep.out 2>&1
指的是将包含"standard" 的行全部写入grep.out文件中,包括grep时发生错误的报错信息
cat >>filetest 2>&1 <<MAYDAY
如果前面没有“|” 没感觉和 cat MAYDAY >>filetest 2>&1 有什么差别
如果有的话,应该就是将前面得到的信息和MAYDAY 中信息一起写入filetest,包括执行命令时的报错信息,但我好像执行不通过。。。
习惯上
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2
1> 指标准信息输出路径(也就是默认的输出方式)
2> 指错误信息输出路径
2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)
补充问题4<&0:
<和<<都是重定向输入
<0指标准输入路径
4<&0 指的是将文件描述符4指定为标准输入(实际可选4到9之间任意一个数字)
不知下面两句是否写得有点问题,或者是断章取义,总觉得前面可能有“|”符号
grep "standard"* > grep.out 2>&1
指的是将包含"standard" 的行全部写入grep.out文件中,包括grep时发生错误的报错信息
cat >>filetest 2>&1 <<MAYDAY
如果前面没有“|” 没感觉和 cat MAYDAY >>filetest 2>&1 有什么差别
如果有的话,应该就是将前面得到的信息和MAYDAY 中信息一起写入filetest,包括执行命令时的报错信息,但我好像执行不通过。。。
习惯上
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1是标准输出
2是错误输出
> 和 >> 都是输出重定向符号。标准输出默认是打印到控制台,如果要导入到文件,就需要使用>或>>。> 会覆盖已有的文件内容,而>>会附加到已有内容之后。
< 和 << 是输入重定向符号。从文件中读取内容。
2>&1 是把错误输出导入(合并)到标准输出流中
grep "standard"* > grep.out 2>&1 就是将标准输出与错误输出一并送入grep.out文件中,写文件方式为覆盖写(>)。
cat >>filetest 2>&1 <<MAYDAY 就是从MAYDAY中读取文件内容,将标准输出与错误输出一并送入filetest文件中,写文件方式为附加写(>>)。
2是错误输出
> 和 >> 都是输出重定向符号。标准输出默认是打印到控制台,如果要导入到文件,就需要使用>或>>。> 会覆盖已有的文件内容,而>>会附加到已有内容之后。
< 和 << 是输入重定向符号。从文件中读取内容。
2>&1 是把错误输出导入(合并)到标准输出流中
grep "standard"* > grep.out 2>&1 就是将标准输出与错误输出一并送入grep.out文件中,写文件方式为覆盖写(>)。
cat >>filetest 2>&1 <<MAYDAY 就是从MAYDAY中读取文件内容,将标准输出与错误输出一并送入filetest文件中,写文件方式为附加写(>>)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面的都对
cat >>filetest 2>&1 <<MAYDAY
执行这一句的时候,用户可以向filetest里输入内容,在遇到输入MAYDAY的时候退出输入。
2>&1就不解释了。
command<<delimiter 这是重定向操作符。更详细的说明可以百度一下。
cat >>filetest 2>&1 <<MAYDAY
执行这一句的时候,用户可以向filetest里输入内容,在遇到输入MAYDAY的时候退出输入。
2>&1就不解释了。
command<<delimiter 这是重定向操作符。更详细的说明可以百度一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询