leel 发表于 2010-7-29 21:16

shell编程第二讲(原创)

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被打开,exec4> a.txt
   接着的命令: exec 5>&4, 这样描述符5成为文件描述符4的复制品了
5.关闭文件描述符
   基本语法:
   exec n>- (n是一个已打开的文件描述符)
学完的问题:
    给出下列脚本:
   exec 4>out.txt
   exec 5>&4
   exec 1>&5
   date
    请问date命令的输出将在哪儿结束?
今天的知识点就到这儿结束了,大家要认真理解,为后面学shell 编程打好基础。明天继续讲进程方面的知识

love、you 发表于 2010-7-29 21:51

支持一下,
不过是你写的么,
那么断的时间写那么多内容?

leel 发表于 2010-7-29 22:13

回复 2# love、you


    我以前就写过了,不是今天写的~~

love、you 发表于 2010-7-30 08:57

哦,,知道了,,!
页: [1]
查看完整版本: shell编程第二讲(原创)