首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell标准输入、标准输出和标准错误的重定向总结

Shell标准输入、标准输出和标准错误的重定向总结

原创
作者头像
陈不成i
修改2021-06-22 14:31:00
修改2021-06-22 14:31:00
4.9K0
举报
文章被收录于专栏:ops技术分享ops技术分享

shell脚本只使用标准输入、标准输出和标准错误

Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。

  1. 标准输入是命令的输入,默认指向键盘;
  2. 标准输出是命令的输出,默认指向屏幕;
  3. 标准错误是命令错误信息的输出,默认指向屏幕。

如果没有显式地进行重定向,命令通过文件描述符0从屏幕读取输入,通过文件描述符1和2将输出和错误信息输出到屏幕。

但如果我们想从其他文件(再次强调,I/O设备在Unix/Linux中也是文件)读取输入或产生输出,就需要对0、1、2使用重定向了。

其语法如下:

  1. command < filename 把标准输入重定向到filename文件中
  2. command 0< filename 把标准输入重定向到filename文件中
  3. command > filename 把标准输出重定向到filename文件中(覆盖)
  4. command 1> fielname 把标准输出重定向到filename文件中(覆盖)
  5. command >> filename 把标准输出重定向到filename文件中(追加)
  6. command 1>> filename 把标准输出重定向到filename文件中(追加)
  7. command 2> filename 把标准错误重定向到filename文件中(覆盖)
  8. command 2>> filename 把标准输出重定向到filename文件中(追加)
  9. command > filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(覆盖)
  10. command >> filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(追加)
  11. command < filename >filename2 把标准输入重定向到filename文件中,把标准输出重定向到filename2文件中
  12. command 0< filename 1> filename2 把标准输入重定向到filename文件中,把标准输出重定向到filename2文件中

重定向的使用有如下规律:

  1. 1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
  2. 2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
  3. 3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。
  4. 4)文件描述符与重定向符号之间不能有空格!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shell脚本只使用标准输入、标准输出和标准错误
  • 重定向的使用有如下规律:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档