|
(())
这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能.所以,在执行效率上会比使用 let 指令要好许多.
#!/bin/bash(( a = 10 ))echo -e “inital value,a = $a/n”(( a++ ))echo “after a++,a = $a”
{} 大括号 (Block of code)
有时候 script 当中会出现,大括号中会夹着一段或几段以”分号”做结尾的指令或变数设定.
# cat ftmp-02#!/bin/basha=fsh{a=inbc ; echo -e “/n $a /n”}echo $a# ./ftmp-02inbcinbc
这种用法与上面介绍的指令群组非常相似,但有个不同点,它在当前的 shell 执行,不会产生 subshell.
大括号也被运用在 “函数” 的功能上.广义地说,单纯只使用大括号时,作用就像是个没有指定名称的函数一般.因此,这样写 script 也是相当好的一件事.尤其对输出输入的重导向上,这个做法可精简 script 的复杂度.
此外,大括号还有另一种用法,如下
{xx,…}
这种大括号的组合,常用在字串的组合上,来看个例子
mkdir {userA,userB,userC}-{home,bin,data}
我们得到 userA-home,userA-bin,userA-data,userB-home,userB-bin,userB-data,userC-home,userC-bin,userC-data,这几个目录.这组符号在适用性上相当广泛.能加以善用的话,回报是精简与效率.像下面的例子
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
如果不是因为支援这种用法,我们得写几行重复几次呀!
[] 中括号
常出现在流程控制中,扮演括住判断式的作用.if [ “$?” != 0 ]thenecho “Executes error”exit 1fi
这个符号在正则表达式中担任类似 “范围” 或 “集合” 的角色
rm -r 200[1234]
上例,代表删除 2001,2002,2003,2004 等目录的意思. (编辑:网站开发网_安阳站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|