您的位置:首页 > 运维架构 > Shell

linux-shell-||,&&{},(),reg-命令执行顺序

2012-08-13 23:24 477 查看
linux-shell-||,&&{},(),reg-命令执行顺序



&&

格式:命令1 && 命令2

作用:& &左边的命令(命令1)返回真(即返回0,成功被执行)后,& &右边的命令(命令2)才能够被执行。

例:

$ mv /apps/bin /apps/dev/bin && rm -r /apps/bin

说明:/apps/bin目录将会被移到/apps/dev/bin目录下,如果它没有被成功执行,就不会删除/apps/bin目录。

||

格式:命令1 || 命令2

作用:如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令(命令2)

例:如果该脚本未执行成功,该s h e l l将结束。

$ comet month_end.txt || exit

用()和{ }将命令结合在一起

多个命令一起执行方法:

1)当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()括起来。

格式:

(命令1;命令2;. . .)

2)子Shell执行,把()换为{}

格式:{命令1;命令2;. . . }

注意:只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前s h e l l执行

综合

这些命令都是综合来用的。

例:

$comet month_end || (echo "Hello ,Comet did not work " | mail myself; exit)

如果该脚本执行失败了,先给自己发个邮件,然后再退出.

(),{}

(cmd1;cmd2;...;cmdN)# 在一个子shell里执行一组命令

{cmd1;cmd2;...;cmdN}# 在当前shell里执行一组命令

正则

^ 只只匹配行首

$ 只只匹配行尾

* 只一个单字符后紧跟*,匹配0个或多个此单字符

[ ] 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]

\ 只用来屏蔽一个元字符的特殊含义。因为有时在s h e l l中一些元字符有特殊含义。\可以使其失去应有意义

. 只匹配任意单字符

pattern \ { n \ } 只用来匹配前面pattern出现次数。n为次数

pattern \ { n,\ } m 只含义同上,但次数最少为n

pattern \ { n,m \ } 只含义同上,但pattern出现次数在n与m之间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: