linux shell 中$() ${}$(())的应用

bash shell

$()和` ` 的作用是一样的,用做命令替换  command substitution 

${} 用来做精准的变量替换  如 a=b; echo  $ab  返回没有ab这个变量,这个时候用echo ${a}b 就可以了。

${}还有很多其他的用法

1.截取

  path=/home/hb/bin

${path#*/}      home/hb/bin  去掉左边第一个/及其左边的字符

${path##*/}    bin  去掉左边最后一个/及其左边的字符

${path%/*}    /home/hb       从右边删除

${path%%/*}  

2.切片 Usage: ${var:offset: length}

${path:5:3}  /ha

3.基于字串查找替换

${var/pattern/replacement} :查找var变量存储的字符中第一次由pattern匹配到的内容,并替换为replacement
${var//pattern/replacement} :查找var变量存储的字符中所有能够由pattern匹配到的内容,并替换为replacement
${var/#pattern/replacement} :查找var变量存储的字符中最开始处能够由pattern匹配到的内容,并替换为replacement
${var/%pattern/replacement} : 查找var变量存储的字符中最后位置能够由pattern匹配到的内容,并替换为replacement

4.基于字串查找删除

忽略替换内容就是删除 ${var/pattern}

5.大小写替换

${var^^}:把var变量中的所有小写字母,统统替换为大写;
${var,,}:把var变量中的所有大写字母,统统替换为小写;

6.空值判断

${var:-word}:如果变量var为空或未声明,则返回word所表示的字符串;否则,则返回var变量的值, 临时赋值

echo ${name:-w}  返回值  w

echo $name   返回值为   空

${var:=word}:如果变量var为空或未声明,则返回word所表示的字符串,并且把word赋值为var变量;否则,则返回var变量的值,直接


echo ${name:=w}  返回值  w

echo $name   返回值为   w

${var:?error}:如果变量var为空或未声明,则返回error为错误信息;否则,则返回var变量的值;

echo ${name:?unset error} 返回:-bash: name: unset error

${var:+word}:如果变量var为空或未声明,忽略;否则,则返回word;

7.获取变量名称为改变量值的值

b=a

a=456

echo ${b} a

echo ${!b} 返回456

$(())

用来数学计算

你可能感兴趣的:(shell)