在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、标准输入,标准输出与标准错误输出 在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名:
标准输入:从键盘输入数据,即从键盘读入数据。 默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端。 系统为这三个文件分配了文件标识符fd(file descripter). 在Linux系统下,一切皆是文件,对文件的操作,一般要用到文件标识符。它们的文件标识符,分别为0,1,2。他们的关系如下表:
二.文件重定向:改变程序运行的输入来源和输出地点 1.输出重定向:
2.输入重定向:
3.绑定重定向
三、使用实例 复制代码 代码如下: cmd > file #说明: 将 cmd 的输出发送到 file 文件(覆盖模式) cmd >> file cmd < file cmd << text cmd <<- text cmd <<< word cmd <> file cmd >| file cmd >&n cmd m>&n cmd >&- cmd <&n cmd m<&n cmd <&- cmd <&n- cmd >&n- cmd 2>file cmd > file 2>&1 cmd >& file cmd &> file cmd &>> file cmd > f1 2> f2 cmd | tee files cmd 2>&1 | tee files cmd |& tee files
1.重定向标准错误 复制代码 代码如下: command 2> /dev/null 如果command执行出错,将错误的信息重定向到空设备 例子2: 复制代码 代码如下: command > out.put 2>&1 将command执行的标准输出和标准错误重定向到out.put(也就是说不管command执行正确还是错误,输出都打印到out.put)。 2.exec用法 复制代码 代码如下: exec command 其中,command通常是一个shell脚本。 对文件描述符操作的时候用(也只有再这时候),它不会覆盖你当前的shell 例子1: 复制代码 代码如下: #!/bin/bash
#file_desc
其中: 例子2: 复制代码 代码如下: exec 3<>test.sh; #打开test.sh可读写操作,与文件描述符3绑定 while read line<&3 do echo $line; done #循环读取文件描述符3(读取的是test.sh内容) 复制代码 代码如下: exec 3>&- exec 3<&- #关闭文件的,输入,输出绑定 五、bash shell 重定向的几个特殊文件
|
请发表评论