shell编程笔记(三)

变量置换

变量置换一共有四种形式

  1. 缺省值置换
    语法格式:${param:=word}
    如果param值为空,或者未赋值,那么word将替代param作为该表达式的返回值,但并不改变param的值
    示例如下:
    shell编程笔记(三)
    可以很清楚地看到,myfruit变量的值依然还是空的,fruit变量的值变成了APPLE
  2. 缺省值赋值
    语法格式:${param:=word}
    如果param值为空,或者未赋值,那么word将把自己的值赋给param
    示例如下:
    shell编程笔记(三)
  3. 空值错误
    语法格式:${param:?msg}
    当变量param未赋值或者为空的时候,会输出一个错误信息msg到STDERR
    示例如下:
    shell编程笔记(三)
  4. 有值置换
    语法格式:${param:+word}
    如果变量param有值,变量word取代param作为表达式的返回值,但param的值不变
    示例如下:
    shell编程笔记(三)

命令置换

就是将命令的输出结果作为变量的值赋给变量
示例:
shell编程笔记(三)
我么也可以直接将命令置换作为其他命令的参数:
shell编程笔记(三)

算式置换

可以帮助用户在shell完成基本的整数运算
语法格式$((expr))
shell编程笔记(三)

引用

使用反斜线实现引用

shell编程笔记(三)
其实这个反斜杠\就是起到一个转义的作用,使得具有特殊意义的字符失效
引用即为转义,此处不再赘述

使用单引号

对于一个包含了很多特殊字符的echo语句,我们可以直接使用单引号把要输出的语句引起来
shell编程笔记(三)

使用双引号

使用单引号的局限性是很大的,它把所有的特殊符号都给转义了,使用双引号就不会出现这种问题,双引号禁止了除$'以外的所有元字符,使用反引号 ` 引起来的命令会被正常执行:
shell编程笔记(三)