commandsubstitution$()``Shell命令替换是指将命令的输出赋给一个变量。Shell中有两种方式完成命令替换,一种是反引号,一种是$(),使用方法如下:variable=`commands`variable=$(commands)其中variable为变量名,而命令是要执行的命令。commands可以只有一个命令,也可以有多个命令,用分号隔开;a=`expr1+1`echo$a$()和``在操作上不同,两者都达到了相应的效果,但是推荐使用$(),原因如下:1.``是容易''令人困惑,特别是对于初学者。2.在多级复合替换中,''必须用额外的转义符(反斜杠)处理,而$()更直观。3、$()的缺点是不是所有的类Unix系统都支持这个方法,但是反引号是肯定支持的。变量替换${}变量替换变量替换可以根据变量的状态(是否为空、已定义等)改变其值可以使用的变量替换形式:形式说明${var}的原始值变量${var:-word}如果变量var为空或已被删除(unset),则返回word,但不改变var的值。${var:=word}如果变量var为空或已被删除(未设置),则返回word并将var的值设置为word。${var:?message}如果变量var为空或者已经被删除(unset),则将message消息发送到标准错误输出,可以用来检测变量var是否可以正常赋值。如果此替换发生在shell脚本中,脚本将停止运行。${var:+word}如果定义了变量var,则返回word,但不改变var的值。
