1、大括号{ }用法实例

1)纯{ }用法

拓展功能:例如:ls {name1,name2}.sh ;touch {1..3}.sh

代码组织功能:例如:多条命令在当前shell中执行 { cmd1;cmd2;cmd3;},注意cmd1与{之间有空格,cmd3后边有;

2)$结合{ }用法

取值拓展功能:例如:var=dreamer;echo ${var}way 此条语句输出dreamerway

替换结构:${var:-string},${var:+string},${var:=string},${var:?string}

A,${var:-string}和${var:=string}:若变量var为空,则用在命令行中用string来替换${var:-string},否则变量var不为空时,则用变量var的值来替换${var:-string};对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的同时,把string赋给变量var: ${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。
    B. ${var:+string}的替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量 var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的) 
     C,${var:?string}替换规则为:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。

模式匹配替换结构:${var%pattern},${var%%pattern},${var#pattern},${var##pattern}

第一种模式:${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式;
     第二种模式: ${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式;
     第三种模式:${variable#pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern开始,如果是,就从命令行把variable中的内容去掉左边最短的匹配模式;
     第四种模式: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式;
     这四种模式中都不会改变variable的值,其中,只有在pattern中使用了*匹配符号时,%和%%,#和##才有区别。结构中的pattern支持通配符,*表示零个或多个任意字符,?表示零个或一个任意字符,[...]表示匹配中括号里面的字符,[!...]表示不匹配中括号里面的字符。

2、中括号[ ]用法实例

单中括号用于条件测试:"["是一个可执行程序,路径是"/usr/bin/[",

if  [ $num1 -eq $num2 ] ; then 等价于 if  /usr/bin/[ $num1 -eq $num2 ] ; then

还等价于if  test $num1 -eq $num2 ; then

单中括号用于数组:例如:输出数组全部元素echo ${array[@]}

双中括号:单中括号加强版 [[是 bash 程序语言的关键字,并不是一个命令,在单括号中是不可以用 ||  &&等关系运算符号的,只能用-a -o等等,例如[[ $arch_com = i386 || $ARCH = i*86 ]]

3、小括号( )用法实例

单括号代码组织功能:跟上边{}不同的是,此处命令块会在子shell中运行,例如:(cmd1;cmd2;cmd3) 这三条命令的执行不会影响当前的shell环境

单括号数组初始化功能:例如:array=(1 2 3 4 5)

双括号算术运算比较功能:例如:for((i=0;i<9;i++)) 如果不采用双括号可用

for i in `seq 0 9`或者for i in {0..9}代替

参考文献:

http://blog.csdn.net/tttyd/article/details/11742241

Shell最全大括号{}、中括号[]、小括号()用法实例相关推荐

  1. shell中的大括号和小括号

    转载自:http://blog.sina.com.cn/s/blog_4a2a29f00100o2os.html 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: ...

  2. python 大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型.  1.python中的小括号( ) ...

  3. php正则表达式小括號,正则表达式中的小括号用法

    正则表达式中的小括号用法 小括号中的连续字符作为可选: "Nov" -match "\bNov(ember)?\b"  返回true "Novembe ...

  4. python 小括号 运算_浅析python 中大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...

  5. python中括号的作用_浅析python 中大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...

  6. C++ 2.0新特性——大括号与小括号

    C++ 2.0新特性--大括号与小括号 变量创建区分() 和 {} 1.大括号初始化可以应用的语境最为宽泛,可以阻止隐式窄化类型转换,若大括号内的表达式无法保证能够采用进行初始化的对象来表达,则代码无 ...

  7. 正则表达式中的小括号用法

    小括号中的连续字符作为可选: "Nov" -match "\bNov(ember)?\b"  返回true    "November" -m ...

  8. python中大括号是什么意思_浅析python 中大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...

  9. 如果用计算机计算带有大括弧的数学题,紧急需要带有大括号,小括号,中括号的脱式计算题目...

    时空之翼_2017 来自团队: 理科爱好者2017.08.16 采纳率:40%    等级:20 已帮助:20917人 { [(2+8)×(-1) ] + 5 }/2 = { [10×(-1) ] + ...

最新文章

  1. SAP PI 集成引擎
  2. Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍
  3. “女版乔布斯”被定罪!曾靠“一滴血”公司狂揽40亿,如今面临最高20年监禁...
  4. Vue中怎样引入Element
  5. 13-NSPersistentContainer性能比较
  6. C++ Bitsets
  7. SAP Spartacus 升级时关于 schematics 的更新
  8. vue利用级联选择器实现全国省市区乡村五级菜单联动
  9. QtCreate由MinGW编译的项目,换为MSVC编译器后编译无法通过
  10. 电路结构原理_精密半波、全波整流电路结构原理图解
  11. javascript使用事件委托
  12. EL与JSTL表达式代码示例
  13. [USACO 09FEB]Fair Shuttle
  14. 自定义TextView显示指定行数
  15. 转载子龙山人 cocos2d-x学习资源汇总(持续更新。。。)
  16. 如何把map的value转为list_如何在Java中将Map转换为List?
  17. pdf转换成word转换器免费下载
  18. Python实现微信自动发送消息
  19. 模拟器怎么安装xposed框架
  20. 【华为机试真题 JAVA】统计射击比赛成绩-100

热门文章

  1. Git 报错 error: pathspec ‘XXX‘ did not match any file(s) known to git 报错解决方法
  2. 目标定位算法(三)之基于角度的定位算法
  3. 乔布斯一个人的世界(一)
  4. 图灵完备 java_图灵完备是什么?
  5. 什么是保健品?保健品引流产品什么样的最好?
  6. CPU(AMD)2020.10购买推荐
  7. \t\t使用INDY的IdMappedPortTCP控件实现动态的HTTP代理服务器
  8. [LabVIEW]--通过LabVIEW打开计算机摄像头、图像显示、拍照。
  9. NOI 2021 游记题解总结
  10. 美团·北极星开发对接避坑指北(Java)