分类:
2007-10-31 14:39:15
shell
之 命令集成
参考资料:
《》第6章命令执行顺序
《Linux 基础教程(1) 操作系统基础》第9.4节
要点:
第一个命令成功之后才执行,使用&&
第一个命令失败之后才执行,使用||, 可代替简单的if语句,多用于输出提示信息。
(命令表)是在新shell中执行
《Linux 基础教程(1) 操作系统基础》中的摘要如下
Shell 命令的集成
元字符和文件名的生成(略)
两种结构类型:管道和命令表。命令表是一串管道线有 ; && || &
命令组合 {命令表}(命令表),前者是在本shell中执行,比如下面例子,一个是是改变了路径的,第2个就没有。注意{ }等旁边要有空格,里面要有分号。
[root@Meil_88 root]# { cd /usr/local ;}
[root@Meil_88 local]#
[root@Meil_88 root]# ( cd /usr/local/ ;)
[root@Meil_88 root]#
命令替换: 使用``
输入输出重定向: 文件描述字0为进程的标准输入,1为标准输出,2为标准错误。
$myprog > out 2 >>out
$myprog>out 2 >> &1
《》第6章命令执行顺序中的原文如下:
第6章命令执行顺序
在本章中,我们将讨论:
• 命令执行控制。
• 命令组合。
如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行
另一个命令,&&和||可以完成这样的功能。相应的命令可以是系统命令或shell脚本。
shell还提供了在当前shell或子shell中执行一组命令的方法,即使用()和{}。
6.1 使用&&
6.2 使用||
6.3 用()和{}将命令结合在一起
如果希望把几个命令合在一起执行, shell提供了两种方法。既可以在当前shell也可以在子shell中执行一组命令。
为了在当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()括起来。
它的一般形式为:
(命令1;命令2;. . .)
如果使用{ }来代替(),那么相应的命令将在子shell而不是当前shell中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前shell执行。它的一般形式为:
{命令1;命令2;. . . }