这种用法与上面介绍的指令群组非常相似 , 但有个不同点 , 它在当前的 shell 执行 , 不会产生 subshell 。
大括号也被运用在 "函数" 的功能上 。广义地说,单纯只使用大括号时,作用就像是个没有指定名称的函数一般 。因此,这样写 script也是相当好的一件事 。尤其对输出输入的重导向上,这个做法可精简 script 的复杂度 。
此外,大括号还有另一种用法,如下
{xx,yy,zz,...}
这种大括号的组合,常用在字串的组合上 , 来看个例子
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"exit1fi
这个符号在正则表达式中担任类似 "范围" 或 "集合" 的角色
rm -r 200[1234]
上例,代表删除 2001, 2002, 2003, 2004 等目录的意思 。
这组符号与先前的 [] 符号,基本上作用相同 , 但她允许在其中直接使用 || 与 逻辑等符号 。
#!/bin/bashread akif [[ak5 || ak 9 ]]thenecho $akfi
这个会时常看到,代表 or 逻辑的符号 。
这个也会常看到,代表 and 逻辑的符号 。
单一个 符号 , 且放在完整指令列的最后端,即表示将该指令列放入后台中工作 。
tar cvfz data.tar.gz data/dev/null
这组符号在规则表达式中,被定义为"边界"的意思 。譬如,当我们想找寻 the 这个单字时 , 如果我们用
grep the FileA
你将会发现,像 there 这类的单字,也会被当成是匹配的单字 。因为 the 正巧是 there的一部份 。如果我们要必免这种情况,就得加上 "边界" 的符号
grep '' FileA
在运算式中,她用来表示 "加法" 。
expr 1 + 2 + 3
此外在规则表达式中,用来表示"很多个"的前面字元的意思 。
# grep '10\+9' fileB109100910000910000931010009#这个符号在使用时,前面必须加上escape 字元 。
在运算式中,她用来表示 "减法" 。
expr 10 - 2
此外也是系统指令的选项符号 。
ls -expr 10 - 2
在 GNU 指令中,如果单独使用 - 符号,不加任何该加的文件名称时,代表"标准输入"的意思 。这是 GNU指令的共通选项 。譬如下例
tar xpvf -
这里的 - 符号,既代表从标准输入读取资料 。
不过,在 cd 指令中则比较特别
cd -
这代表变更工作目录到"上一次"工作目录 。
在运算式中 , 用来表示 "除法" 。
expr 10 % 2
此外,也被运用在关于变量的规则表达式当中的下列
{parameter%word} {parameter%%word}
一个 % 表示最短的 word 匹配,两个表示最长的 word 匹配 。
常在设定变数时看到的符号 。
vara=123echo " vara = $vara"
或者像是 PATH 的设定,甚至应用在运算或判断式等此类用途上 。
常在条件判断式中看到,代表 "等于" 的意思 。
if [ $vara == $varb ]
...下略
常在条件判断式中看到,代表 "不等于" 的意思 。
if [ $vara != $varb ]
...下略
这个符号在规则表达式中,代表行的 "开头" 位置,在[]中也与"!"(叹号)一样表示“非”
输出/输入重导向
文件描述符(File Descriptor),用一个数字(通常为0-9)来表示一个文件 。
常用的文件描述符如下:
推荐阅读
- js数组字符串转换为数字,js字符串数组转化为整数型数组
- 商场如何给员工做营销,商场内部员工促销活动方案
- c语言zero函数 c语言中0u
- jquery写出星星闪烁,jquery星星闪烁效果代码
- 硬盘拷贝资料怎么设置分区,硬盘 拷贝
- 虚拟机kalilinux,虚拟机kali连接usb无线网卡蓝屏
- python取中间值函数 python中间值怎么获得
- 深圳专注sap系统迁移,深圳sap相关职位
- 如何增强企业营销活力,强化营销能力,提高企业竞争力