
Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。
标准输入是命令的输入,默认指向键盘;标准输出是命令的输出,默认指向屏幕;标准错误是命令错误信息的输出,默认指向屏幕。如果没有显式地进行重定向,命令通过文件描述符0从屏幕读取输入,通过文件描述符1和2将输出和错误信息输出到屏幕。
但如果我们想从其他文件(再次强调,I/O设备在Unix/Linux中也是文件)读取输入或产生输出,就需要对0、1、2使用重定向了。
其语法如下:
command < filename 把标准输入重定向到filename文件中command 0< filename 把标准输入重定向到filename文件中command > filename 把标准输出重定向到filename文件中(覆盖)command 1> fielname 把标准输出重定向到filename文件中(覆盖)command >> filename 把标准输出重定向到filename文件中(追加)command 1>> filename 把标准输出重定向到filename文件中(追加)command 2> filename 把标准错误重定向到filename文件中(覆盖)command 2>> filename 把标准输出重定向到filename文件中(追加)command > filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(覆盖)command >> filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(追加)command < filename >filename2 把标准输入重定向到filename文件中,把标准输出重定向到filename2文件中command 0< filename 1> filename2 把标准输入重定向到filename文件中,把标准输出重定向到filename2文件中1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。4)文件描述符与重定向符号之间不能有空格!原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。