linux中各种括号之(),(()),[],[[]],{}
来源:互联网 发布:suse linux yast 编辑:程序博客网 时间:2024/05/23 19:13
1.单小括号()
(1)命令组,括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。形如(cmd1;cmd2;cmd3),这三条命令的执行不会影响当前的shell环境。
(2)命令替换,$(command)
(3)定义数组,array = ("beijing" "tianjin" "chongqin" "shanghai")
2.双小括号
(0)((expr))中的expr可以支持C语言中的各种表达式,甚至连a>b?a:b这样的三目表达式都支持
(1)(())中使用变量,均不需要$符号,例如,((a=b+c))
(2)(())中可以有多个表达式,各个表达式用逗号,分割,例如((a++,b++,c++))
(3)((expr))中expr表达式不仅可以是关系表达式,也可以是算术表述式,比如((a>b)) 或者((a+b))
(4)((expr))可以用在for、while、if中的条件判断中,例如if((a>b)) while((a==b))
(5)可以使用$((expr))获取expr的表达式计算结果值
3.单中括号[]
(1)[]中[是base的内置命令,和test命令是一样的。]表示条件表达式的结束。也就是说,
if [ $num1 -eq $num2 ] ; then 等价于 if /usr/bin/[ $num1 -eq $num2 ] ; then 还等价于if test $num1 -eq $num2 ; then
(2)[]的具体用法有
- [ expr ]
- [ expr1 -o expr2 ] eg, [ "$variable" == "Y" -o "$variable" == "y"]
- [ expr1 -a expr2 ]
- [ expr1 ] || [ expr2 ]
- [ expr1 ] && [ expr2 ]
4.双中括号[[]]
[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。
对于复合表达式这块,[[]]支持如下两种[]不支持的形式,
- [ expr1 || expr2 ] eg, [ "$variable1" == "Y" || "$variable2" == "y"]
- [ expr1 && expr2 ]
5.大括号{}
(1)类似数组的功能
{1..9} #使用两个点号连接,表示1到9{1,8,9} #使用逗号连接,表示1,8,9#使用举例:#统计00点30分到00点44分之间 每分钟的qpsfor i in {30..44};do echo -n "01-10 00:${i} qps stat:" && cat access.log.2016011000 | grep "01-10 00:${i}" | wc -ldone#统计00点30分,00点35分,00点44分这三个时刻点的qpsfor i in {30,35,44};do echo -n "01-10 00:${i} qps stat:" && cat access.log.2016011000 | grep "01-10 00:${i}" | wc -ldone#touch文件touch access.log.20160110{00,15,30,45}
(2)代码块的功能,又被称为内部组,这个结构事实上创建了一个匿名函数 。与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号内的命令间用分号隔开,最后一个也必须有分号。{}的第一个命令和左括号之间必须要有一个空格。
(3)变量内容的删除、替代和替换。类似于这样的形式,${变量#关键字},${变量%关键字},${变量/旧字符串/新字符串},${str-expr},${str+expr},${str:=expr}等等
学习资料参考http://blog.csdn.net/tttyd/article/details/11742241
0 0
- linux中各种括号之(),(()),[],[[]],{}
- linux shell中 括号的各种用法
- linux shell中各种括号的使用方法
- 嵌入式linux入门之shell 编程中各种括号的使用
- linux命令---各种括号
- Shell中各种括号
- Linux Shell中各种分号和括号的用法总结
- Linux Shell中各种分号和括号的用法总结
- Linux Shell脚本攻略:shell中各种括号()、(())、[]、[[]]、{}的作用
- Linux Shell中各种分号和括号的用法总结
- linux shell中的各种括号的使用方法
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
- Spring AOP 本质
- 值得推荐的C/C++框架和库 (真的很强大)
- C++:STL标准入门汇总
- 当前的几种开源游戏服务端介绍
- pp看书笔记---C#高级编程第九版 第四章 【继承】
- linux中各种括号之(),(()),[],[[]],{}
- Jquery实现广告滚动
- Python exec,assert,lambda
- 让人崩溃的Californium (Cf) CoAP framework ,总算解决,可以调试
- 数组元素组合问题分析
- 【Html】伪类选择符
- Android学习笔记:NavigationView实现侧拉抽屉
- JSP之EL表达式详细介绍
- V8安装 igrimace 平安易贷 优步 uber 微信站街,陌陌站街 借贷保 一键新机