首页 > 代码库 > shell输出重定向

shell输出重定向

在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。

  标准输入:0(缺省是键盘,为0时是文件或者其他命令的输出)

  标准输出:1(缺省是屏幕,为1时是文件)

  标准出错:2(缺省是屏幕,为2时是文件)

系统中实际上有12个文件描述符,可以任意使用文件描述符3到9.

 

文件重定向:改变程序运行的输入来源和输出地点

  Command > filename           #把标准输出重定向到一个新文件中

  Command >> filename         #把标准输出重定向到一个文件中(追加)

  Command > filename 2>&1         #把标准输出和错误一起重定向到一个文件中

  Command >> filename 2>&1       #把标准输出和错误一起重定向到一个文件(追加)

  Command  2>filename                #把标准错误重定向到一个文件中

  Command  2>>filename      #把标准输出重定向到一个文件中(追加)

  Command < filename                 #Command命令以filename文件作为标准输入

  Command << delimiter     #从标准输入中读入,知道遇到delimiter分界符

     Command >&m                         #把标准输出重定向到文件描述符m中

     Command < &-           #关闭标准输入

 

n<&- 表示将 n 号输入关闭
<&- 表示关闭标准输入(键盘)
n>&- 表示将 n 号输出关闭
>&- 表示将标准输出关闭