0
点赞
收藏
分享

微信扫一扫

怎样在iOS手机上进行自动化测试

最近学习Linux Shell编程,对 () (()) [] [[]]等符号的用法还是有点分不太清楚,于是决定再梳理一下。今天先整理 () $() (()) 的用法。

1 单小括号()

1.1 子shell(命令组)


括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。

1.1.1 bash中

 

1.1.2 在zsh中

在上面的实例中,执行命令i=1; echo $i 时变量i初始为1

执行命令(let i+=5; echo $i);时,会创建一个子shell来执行,其中变量值i变为6

最后执行命令echo $i,母shell中的变量i的值并没有继承子shell中的变化,仍然为1


1.2 用于定义并初始化数组

如:

定义了数组 a并初始化其中的元素值。

1.3 用于条件判断

1.3.1 bash中

1.3.2 在zsh中

2 $():命令替换

与` `(反引号)相似,都是用来作命令替换的,即,先完成()(小拓号)或` `(反引号)里的命令行,然后将其标准输出结果替换出来。

2.1 在bash中

在上面的实例中,我们先执行pwd命令显示当前目录路径:/home/csdn

然后执行命令echo '\\n'来换行

接着打开一个子shell执行命令: (cd /;echo path:;pwd); 其中命令cd /将当前目录改为/,再用pwd显示当前目录路径:/

然后我们执行命令echo '\\n'来换行

最后再用pwd显示当前目录路径:/home/csdn

但是echo '\\n'命令没有实现换行,用了-e选项还是不行。

2.2 在zsh中

同样的命令,在zsh中执行正确,换行也生效了。

注:有些shell不支持这种使用方法,如tcsh。

3 双小括号(()):整数运算、进制转换

3.1 整数运算、比较

3.1.1 在bash中

3.1.2 在zsh中

3.2 进制转换

$(( ))可以将其他进制转成十进制数显示出来。用法如下:

其中,N为进制,x为该进制下某个数值,命令执行后可以得到该进制数转成十进制后的值。
 

3.2.1 在bash中

在bash中,可以顺利完成进制转换,进制转换和运算,但进制转换和比较不成功。

3.2.2 在zsh中

在zsh中,可以顺利完成进制转换,进制转换和运算,进制转换、运算和比较。 

在这点上,zsh表现优于bash。

3.3 在(())中使用变量

3.3.1 在bash中

3.3.2 在zsh中

在bash和zsh中,在 (( )) 中使用变量一般不需要加上$前缀,(( )) 会自动解析变量名,这使得代码更加简洁,也符合程序员的书写习惯。

但也有例外。比如:

bash和zsh都无法识其中的变量i,于是我们要 用 $i 或 ${i}把变量i标记出来。

3.4 总结

shell类型整数运算比较算术&比较进制转换进制转换&算术&比较
bash×
zsh

3.5 注意

(( )) 只能用于整数算,不能用于小数(浮点数)或者字符串。要进行小数运算,可以使用 bc 命令。

举报

相关推荐

0 条评论