单引号 ’ ’
所见即所得,吃啥吐啥
里面的命令和脚本不会执行
可以看到如果光执行变量是会显示结果的
加了单引号只输出了其中的字符
[root@shell ~ 59]# $LANG
-bash: en_US.UTF-8: command not found
[root@shell ~ 60]# $PS1
-bash: [\u@\h: command not found
[root@shell ~ 61]# echo '$LANG $PS1'
$LANG $PS1
双引号 " "
双引号里面的特殊符号 会被解析运行
输出的语句是被解析过变量以后再输出的
[root@shell ~ 62]# echo "$LANG $PS1"
en_US.UTF-8 [\u@\h \W \#]\$
不加引号
与双引号类似,可以使用 { }
只有不加引号才完整的输出了 12345序列
其他的都是显示了原本的中括号
[root@shell ~ 64]# echo '$LANG $PS1 {1..5}'
$LANG $PS1 {1..5}
[root@shell ~ 65]# echo "$LANG $PS1 {1..5}"
en_US.UTF-8 [\u@\h \W \#]\$ {1..5}
[root@shell ~ 66]# echo $LANG $PS1 {1..5}
en_US.UTF-8 [\u@\h \W \#]\$ 1 2 3 4 5
反引号 ``
是esc下面的那个小波浪英文是反引号
反引号===== $()
优先执行,先执行里面的命令,会把结果留下
先执行了创建目录RNG,然后再ls查看
[root@shell ~ 75]# ls ` mkdir RNG `
1111 3.txt RNG zheng zheng.sh
2.txt anaconda-ks.cfg test zheng.c zheng.txt
[root@shell ~ 78]# ls $(mkdir uzi)
1111 3.txt RNG uzi zheng.c zheng.txt
2.txt anaconda-ks.cfg test zheng zheng.sh