shell输入与输出

如果是LINUX系统,那么......

必须使用- n选项来禁止echo命令输出后换行:




如果你希望列出系统中所有的文件系统,可以使用管道把 d f命令的输出传递给 a w k命令,
a w k显示出其中的第一列。你还可以再次使用管道把 a w k的结果传递给 g r e p命令,去掉最上面
的题头f i l e s y s t e m

当然,你没准还会希望只显示出其中的分区名,不显示 / d e v / 部分,这没问题;我们只要
在后面简单地加上另一个管道符号和相应的 s e d 命令即可。


5.5 tee
t e e命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个
副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命
令再合适不过了。
它的一般形式为:
tee -a files
其中,- a表示追加到文件末尾。
当执行某些命令或脚本时,如果希望把输出保存下来, t e e命令非常方便。
下面我们来看一个例子,我们使用 w h o命令,结果输出到屏幕上,同时保存在 w h o . o u t文
件中:

$ who | tee who.txt


在对标准错误进行重定向时,必须要使用文件描述符,但是对于标准输入和输出来说,
这不是必需的。为了完整起见,我们在表 5 - 1中列出了两种方法。
表5-1  常用文件重定向命令
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中 (追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中 (追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 (追加)
command < filename >filename2 把c o m m a n d命令以 f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件
作为标准输出
command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到 d e l i m i t e r分界符
command <&m 把把文件描述符 m作为标准输入
command >&m 把把标准输出重定向到文件描述符 m中
command <&- 把关闭标准输入

重定向标准错误

g r e p命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定
向到文件/ d e v / n u l l 中(实际就上是系统的垃圾箱 ):
$ grep "trident" missiles 2>/dev/null
这样所有的错误输出都输送到了 / d e v / n u l l,不再出现在屏幕上

$ cleanup >cleanup.out 2>&1
在上面的例子中,我们将 c l e a n u p脚本的输出重定向到 c l e a n u p . o u t 文件中,而且其错误也
被重定向到相同的文件中。
$ grep "standard"* > grep.out 2>&1


5.10 exec
e x e c命令可以用来替代当前 s h e l l ;换句话说,并没有启动子 s h e l l。使用这一命令时任何现
有环境都将会被清除,并重新启动一个 s h e l l 。它的一般形式为:
exec command
其中的c o m m a n d通常是一个 s h e l l 脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值