Linux-谁能清楚的讲讲联合符号&的作用
cat >test2 1&2 <test1 标准输出和错误输出都到test2文件中
cat 1&2 >test2 <test1 标准输出到屏幕,错误输出到test2文件中
为什么啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
cat >test2 1&2 <test1 标准输出和错误输出都到test2文件中
cat 1&2 >test2 <test1 标准输出到屏幕,错误输出到test2文件中
为什么啊?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
& 表示后台运行,例如:“ls &” 表示在后台运行ls命令:
&& 表示前者执行成功,执行后台命令,例如:“ls && ll”:
根据你提供的命令和解释,推测在 & 符号旁边缺少了一个大于号 单纯的 & 会将前面输入的命令挂起,这一点可完全不会现出lz所述的结论哦~
如果我说错了,那就不用接着看下文了。
首先,关于文件描述符注意这么一个概念,默认的数字中,0 表示标准输入(键盘),1 表示标准输出(终端屏幕),2 为标准错误输出(终端屏幕)
然后说明一下重定向,意思就是把默认IO流进行重新定向
原第一条命令应该是
cat > test2 1>&2 < test1
cat > test2 表示将原来 标准输出 重定向 到 test2 文件
1>&2 表示将 标准输出 重定向 到 标准错误输出,原来的 标准错误输出保留
< test1 意思是将 test1 的文件内容作为 标准输出 放到该命令中
整理一下: test1 的内容输出到 test2,test1 的文件内容和错误输出还会输出到屏幕上
有了上面的分析,不难懂第二个命令了
原第二条命令应为:
cat 1>&2 > test2 < test1
先将标准输出 重定向 到标准错误输出,然后修改 标准输出 到 test2,由 test1 提供源
效果是:test1 的内容被放到了 test2 里面,出错了还是显示到屏幕上
推荐你一个视频教程
http://v.youku.com/v_show/id_XNDgxMzE1MTcy.html