1. $() 和`` 都可以作为命令替换用
[root@itlaoxin163 ~]# version=$(uname -r)[root@itlaoxin163 ~]# echo $version3.10.0-1062.12.1.el7.x86_64[root@itlaoxin163 ~]# ver=`uname -r`[root@itlaoxin163 ~]# echo $ver3.10.0-1062.12.1.el7.x86_64[root@itlaoxin163 ~]#

  1.                                     用                         于                         变                         量                         替                         换                         ,                         一                         般                         情                         况                         下                         ,                            {} 用于变量替换,一般情况下,                 用于变量替换,一般情况下,var 与${var} 并没有什么不一样,但是用 ${ } 会比较精确的界定变量名称的范围。
[root@itlaoxin163 ~]# var=a1[root@itlaoxin163 ~]# echo $vara1[root@itlaoxin163 ~]# echo ${var}a1

区别在哪呢?

[root@itlaoxin163 ~]# echo $varA[root@itlaoxin163 ~]# echo ${var}Aa1A[root@itlaoxin163 ~]#

可以看到,我如果想输出AA
用echo $varA 这种方式会默认以为输出varA变量,但目前没有这个变量
所以可以使用{}来 替代

  1.                             [                         ]                         和                            [] 和                 []和(())

这两个是进行数学运算的

[root@itlaoxin163 ~]# a=5[root@itlaoxin163 ~]# b=6[root@itlaoxin163 ~]# c=7[root@itlaoxin163 ~]# echo $((a+b*c))47[root@itlaoxin163 ~]# echo $[a+b*c]47

总结:
字符串的比较可以用[[]]
算术比较可以用[]
算术运算可以用(())
shell命令输出可以用()和反单引号一样
快速替换{}
反单引号是命令替换

[[]]
if [[ $a -ne $b ]]

${} 其他的作用

模式匹配替换——KaTeX parse error: Expected '}', got 'EOF' at end of input: {var%pattern},{var%%pattern},KaTeX parse error: Expected '}', got '#' at position 5: {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中去掉左边最长的匹配模式

比如第一种模式:

去掉从i到x

[root@itlaoxin163 ~]# var=laoxinlinux[root@itlaoxin163 ~]# echo $varlaoxinlinux[root@itlaoxin163 ~]# echo ${var%i}laoxinlinux[root@itlaoxin163 ~]# echo ${var%i*x}laoxinl