shell编程笔记(三)
变量置换
变量置换一共有四种形式
-
缺省值置换
语法格式:${param:=word}
如果param
值为空,或者未赋值,那么word将替代param
作为该表达式的返回值,但并不改变param
的值
示例如下:
可以很清楚地看到,myfruit
变量的值依然还是空的,fruit
变量的值变成了APPLE
-
缺省值赋值
语法格式:${param:=word}
如果param
值为空,或者未赋值,那么word
将把自己的值赋给param
示例如下: -
空值错误
语法格式:${param:?msg}
当变量param
未赋值或者为空的时候,会输出一个错误信息msg
到STDERR
示例如下: -
有值置换
语法格式:${param:+word}
如果变量param
有值,变量word
取代param
作为表达式的返回值,但param
的值不变
示例如下:
命令置换
就是将命令的输出结果作为变量的值赋给变量
示例:
我么也可以直接将命令置换作为其他命令的参数:
算式置换
可以帮助用户在shell完成基本的整数运算
语法格式$((expr))
引用
使用反斜线实现引用
其实这个反斜杠\
就是起到一个转义的作用,使得具有特殊意义的字符失效
引用即为转义,此处不再赘述
使用单引号
对于一个包含了很多特殊字符的echo
语句,我们可以直接使用单引号把要输出的语句引起来
使用双引号
使用单引号的局限性是很大的,它把所有的特殊符号都给转义了,使用双引号就不会出现这种问题,双引号禁止了除$
和 '
以外的所有元字符,使用反引号 ` 引起来的命令会被正常执行: