好友
阅读权限10
听众
最后登录1970-1-1
|
leel
发表于 2010-7-29 21:16
shell编程第二讲(灵魂の低调)
文件描述符(文件句柄)
重要: 标准输入 0
标准输出 1
标准错误 2
1.使用文件描述符和文件关联
用exec命令将任何文件和文件描述符关联,语法是:$ exec n>file (n是整数,file是 文件名)如:$ exec 4>fd4.out 把文件fd4.out和文 件描述符4关联起来。
2.重定向标准输出和标准错误到单独文件
文件描述符最常用的将标准输出和标准错误重定向到单独文件,基本语法为:
cmd 1>file1 2>file2 在这里,命令的标准输出被重定向到文件file1,标准错误被重定 向到文件file2。当然我们也可以用追加操作符代替标准的重定向操作符(追加操作符在 第一讲已经提及,这儿就不重复了)
3.重定向标准输出和标准错误到同一个文件
由上面我们已经知道如何把stdout(标准输出)和stderr(标准错误)重定向到不同的文 件,但是我们如何将他重定向到一个文件呢?基本语法:cmd>file 2>& 这样cmd的文件描 述符1和文件描述符2都被重定向文件file
4.重定向两个文件描述符
我们也可以将一个文件描述符重定向到另一个文件描述符:n>&m
输出重定向的普通格式经常和exec命令结合来复制一个已经打开的文件描述符:exec n>&m (这里m是一个已经打开的文件描述符)
下面我来举个例子让大家能更好的理解:
如果文件描述符4被打开,exec 4> a.txt
接着的命令: exec 5>&4, 这样描述符5成为文件描述符4的复制品了
5.关闭文件描述符
基本语法:
exec n>- (n是一个已打开的文件描述符)
学完的问题:
给出下列脚本:
exec 4>out.txt
exec 5>&4
exec 1>&5
date
请问date命令的输出将在哪儿结束?
今天的知识点就到这儿结束了,大家要认真理解,为后面学shell 编程打好基础。明天继续讲进程方面的知识
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|