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 之间的内容作为输入
输出重定向
使用“>”时,输出重定向会覆盖文件内容,如果不希望文件内容被覆盖,可以使用 ”>> “
示例
输入重定向
将需要从键盘获取输入的命令会转移到文件读取内容
示例
将num.sh中的数字重定向到sort命令的输入端,sort对这些数字排序后输出
标准错误进行重定向
command > file 2>&1:将标准输出文件(stdout)和 标准错误文件(stderr) 合并后重定向到 file
command > file 2>&1:将 标准输出文件(stdout)和 标准错误文件(stderr)合并后重定向到 file
command > /dev/null:不希望在屏幕上显示输出结果,则将输出重定向到 /dev/null