天天看点

shell编程-输入/输出重定向(十一)

linux中文件描述符

  linux跟踪打开文件,而分配的一个数字,通过这个数字可以实现对文件的读写操作

  用户可以自定义文件描述符范围是:3-max,max跟用户的ulimit –n 定义数字有关系,不能超过最大值

  在执行shell命令时,会默认3个文件描述符,分别是:

    0 :通常是标准输入(STDIN)

    1 :是标准输出(STDOUT)

    2 :是标准错误输出(STDERR)

  执行shell命令中,会先有输入然后才会有输出。输入可以从键盘、文件中获得,命令执行成功后会将结果输出到系统默认的位置(默认位置是屏幕)

  而重定向则是改变输入输出的默认位置

重定向命令格式

  command > file:将输出重定向到 file

  command < file:将输入重定向到 file

  command >> file:将输出以追加的方式重定向到 file

  n > file:将文件描述符为 n 的文件重定向到 file

  n >> file:将文件描述符为 n 的文件以追加的方式重定向到 file

  n >& m:将输出文件 m 和 n 合并

  n <& m:将输入文件 m 和 n 合并

  << tag:将开始标记 tag 和结束标记 tag 之间的内容作为输入

输出重定向

  使用“>”时,输出重定向会覆盖文件内容,如果不希望文件内容被覆盖,可以使用 ”>> “

  示例

  

shell编程-输入/输出重定向(十一)

输入重定向

  将需要从键盘获取输入的命令会转移到文件读取内容

shell编程-输入/输出重定向(十一)

  将num.sh中的数字重定向到sort命令的输入端,sort对这些数字排序后输出

标准错误进行重定向

  command > file 2>&1:将标准输出文件(stdout)和 标准错误文件(stderr) 合并后重定向到 file

  command > file 2>&1:将 标准输出文件(stdout)和 标准错误文件(stderr)合并后重定向到 file

  command > /dev/null:不希望在屏幕上显示输出结果,则将输出重定向到 /dev/null