课程章节: 第2章 shell编程基础:2-14 Shell中的文件描述符和管道实战(一)(课程链接:https://coding.imooc.com/lesson/549.html#mid=50190)
主讲老师: 沈奇才
课程内容:shell编程实战与Linux运维基础--初始shell编程
课程收获:
一、文件描述符:
0 stdin 标准输入
1 stdout 标准输出
2 stderr 标准错误输出
echo "hello" #标准输出(放在了stdout里面)
ls 一个不存在的文件 #标准错误输出,放在了stderr里面,如果把错误输出重定向到某个文件里面用如下方法:ls s 一个不存在的文件 2> 文件, 默认是将1
二、创建文件描述符
exec 4 < ##输入描述符
4 > ##输出描述符
4 <> ##输入输出描述符
用法举例:
exec 4 < /tmp/file.in
exec 5 > /tmp/file.out
例1:
echo -e "hello\nworld\n你好" > /tmp/file.in
exec 4< /tmp/file.in
exec 5> /tmp/file.out
while read line
do
echo "文件内容:$line"
done < &4
三、exec M >&N M N都是文件描述符
exec >&5 > 等价于 1>
exec 2>&5 ##把标准的错误输出重定向到了5里面 即/tmp/file.out
exec 6<>/tmp.file.inout ##既可输入又可输出
四、如何关闭文件描述符
exec 4<&-
exec 5>&-
exec 6<>&-