博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bash Shell 里的各种括号
阅读量:6423 次
发布时间:2019-06-23

本文共 967 字,大约阅读时间需要 3 分钟。

天在  上看到又有人问起关于Shell里各种括号的问题。对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括号的用法和区别,别的Shell我不会。。。

(( )) :一对圆括号有两个地方用到。

1,for循环,

for (( expr1 ; expr2 ; expr3 )) 

这里一对双括号里边的表达式,GNU的文档指出,expr1支持 Shell Arithmetic;expr2不为0时,expr3被赋值且语句执行。说的很麻烦,还要花时间搞清楚什么是Shell Arithmetic。其实一言以蔽之,支持数字条件。比如:

for (( a=0 ; a<10 ; a++ )); do echo $a; done

会输出 0 1 2 3 (带换行哦~~~)

2,数学表达

(( )) 和 $(( ))

(( )) 的用法与let一样,就不用多解释了吧~~~

$(( ))就是把计算结果拿出来,可以用在双引号里边,比如:

echo "1+2=$(( 1 + 2 ))"

会输出 1+2=3

( ):一个圆括号

在for循环里,跟C语法一样一样的。

或者是子程序,返回整个里边表达的返回值。里边的变量都是局部的,修改不会带到外边。举例子

a=1

(a=3; echo $a)

echo a

结果是 3 1

还有个就是圈数组。。。这个就没神马意思了

[ ]:一个方括号,是bash的命令,查man手册是可以查到的,跟test一样,在手册里可以看到很多用法。比如-b -c -gt -eq 什么的很多,还有用-a表示与,-o表示或等等

[[ ]]:一对方括号是一个方括号的加强版,则是Shell的保留字,里边支持了 || && 等等这些符号。一般我喜欢用这个

还有相对复杂的 { }

几个用处,区分变量,如:

var=abcd; echo ${var}EFG;

这样,Bash就不会认为变量是varEFG了

还有用来截取字符串的 ${ }语法比较灵活多变,这里不做多解释,大家有兴趣可以自己去搜搜资料,一般我脚本用到的字符串处理,这个都能搞定了。

代码块。用来区分代码的,但是跟( )有个区别,就是在末尾要加上 ;

目前看到常用的用法也就是这样,肯定不全,欢迎补充,欢迎交流。

转载地址:http://ntrra.baihongyu.com/

你可能感兴趣的文章
[分享]iOS开发-UICollectionViewCell 布局
查看>>
NSURLRequestCachePolicy 缓存策略
查看>>
如何理解LXC与Docker之间的主要区别
查看>>
APP测试的新篇章
查看>>
Git小结
查看>>
orm2 中文文档 3.3 模型钩子
查看>>
Flask学习
查看>>
你真的会使用XMLHttpRequest吗?
查看>>
【数据可视化】艺术——图表的选择(上)
查看>>
Android换肤技术总结
查看>>
Mysql日志分析
查看>>
如何编写一个独立的 PHP 扩展(译)
查看>>
webview中嵌入部分html5适配的小方法~
查看>>
戴尔OptiPlex 9020台式机安装Ubuntu时网卡不能通过DHCP得到IP地址
查看>>
北京国科天迅完成数千万元A+轮融资,中科创星领投 ...
查看>>
《TCP IP 详解卷1:协议》阅读笔记 - 第二章
查看>>
从边车模式到 Service Mesh
查看>>
清除过期日志的py脚本
查看>>
快来pick你心目中的影帝小哥哥,一起迎接2019吧! ...
查看>>
JavaScript中的数组创建
查看>>