(035) Linux之其他命令

十年运维系列之基础篇 - Linux

作者:曾林 

联系:[email protected]

网站:www.jplatformx.com

版权:文章未经同意请勿转载


一、引言

  本小节中将谈论一些比较琐碎零散的知识。这些知识虽然不太经常使用,但是却对特定的程序设计问题大有帮助。下面将学习这方面的内容。

 

二、组命令和子shell

  bash允许将命令组合到一起使用,这有两种方式,一种是利用组命令,另一种是使用子shell。下面是这两种方式的语法实例。

  组命令:

{ command1; command2; [command3;...] }

  子shell:

(command1; command2; [command3;...])

  这两种形式的区别在于,组命令使用花括号将其命令括起来,而子shell则用圆括号。指的注意的是,在bash实现组命令时,必须使用一个空格将花括号与命令分开,并且在闭合花括号前使用分号或是换行来结束最后的命令。执行结果如下图所示:

技术分享

 

1. 执行重定向

  组命令和子shell有什么用途呢?它们都可以用于管理重定向。下面让我们看一个在多个命令中执行重定向的脚本段。

1 ls -al > output.txt
2 echo "Listing of foo.txt" >> output.txt
3 cat foo.txt >> output.txt

  显而易见,3条命令将输出重定向为output.txt文件。使用组命令,可以按照如下的方式编码。

{ ls -l; echo "Listing of foo.txt"; cat foo.txt; } > output.txt
(ls -l; echo "Listing of foo.txt"; cat foo.txt;) > output.txt

  使用这个技术,可以减少一些输入,但是组命令或子shell真正有价值的地方在于管道的使用。当创建命令管道时,通常将多条命令的结果输出到一条流中,这很有用。组命令和子shell使得这一点变得简单。

 

 

 

 

 

  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。