永夜海 发表于 2018-8-20 11:04:03

Shell 重定向


[*]  输入和输出
  改变输入或输出的默认路径就叫重定向。
  0:标准输入
  1:标准输出
  2:标准错误
  标准输入特点:
  它是默认的输入方法,它被所有命令使用来读取输入。
  它用数字0表示
  它也被称作stdin
  默认的标准输入设备是键盘
  操作符""是输出重定向操作符。
  command > output_filename
  标准错误:
  它是默认的错误输出方法,它被用于写入所有系统错误信息。
  它用数字2表示
  它也被成为stderr
  默认的标准输出设备是屏幕或显示器。
  操作符"2>"是标准错误重定向操作符。
  command 2> errors_filename
  2.重定向
  在linux系统中,总有3个默认的设备文件是打开的,即标准输入、标准输出、标准错误。这三个文件和其他地方被打开的文件,都可以被重定向。重定向简单地说就是从文件、命令、程序、脚本、甚至是脚本中代码块获取输出并把它作为输入发送到另一文件、命令、程序或脚本。
  每个打开的文件被指定一个描述。0、1、2分别为标准输入 输出 错误。对于打开的另外的文件,这里余留了文件描述符3-9.
  文件重定向:
  输出到文件
  command > file
  从文件输入
  command < file
  {
  read line1
  read line2
  } file
  command >& file
  command > file 2>&1
  command 2>&1 >file
  追加重定向
  符号">>" 用于追加重定向输出
  command >> filename
  单个命令行进行标准输入输出重定向
  command < input-file > output-file
  3.文件描述符
  Shell有时会引用使用文件描述符(fd)的文件。一般fd 0-9 大于9的文件描述符要谨慎使用,因为它们可能与Shell内部使用的文件描述符冲突。
  有些文件描述符是在Shell启动时被建立的,这就是我们前面介绍的标准输入、标准输出和标准错误(0,1,2)文件描述符。
  使用exec命令
  exec 2>errfile
  之后的所有命令,标准错误输出都会到errfile里
  exec 3
页: [1]
查看完整版本: Shell 重定向