Shell 编程基础 - 转义和引用
转义
Shell 中的转义符是反斜线 \
[root@localhost shell]# cat zy.sh
#!/bin/bash
name=liushu
echo $name
#转义
echo \$name
[root@localhost shell]# bash zy.sh
liushu
$name
引用
引用是指将字符串用某种符号括起来,以防止特殊字符被解析为其他意思。比如说上一小节中的转义符就是一种引用。Shell 中一共有 4 种引用符,分别是双引号、单引号、反引号(在键盘上和波浪号位于同一个键)和转义符。其中双引号又叫“部分引用”或“弱引用”,可以引用除 $ 符、反引号、转义符之外的所有字符;单引号又叫“全引用”或“强引用”,可以引用所有字符;反引号则会将反引号括起的内容解释为系统命令。
部分引用
部分引用是指用双引号括起来的引用。在这种引用方式中,$ 符、反引号(`)、转义符(\)这 3 种特殊字符依然会被解析为特殊意义。
[root@localhost shell]# cat yy.sh
#!/bin/bash
var1=100
echo $var1
echo "$var1"
var2="A B C"
echo $var2
echo "$var2"
[root@localhost shell]# bash yy.sh
100
100
A B C
A B C
全引用
全引用是指用单引号括起来的引用。单引号中的任何字符都只当作是普通字符(除了单引号本身,也就是说单引号中间无法再包含单引号,即便用转义符转义单引号也不行)。所有在单引号中的字符都只能代表其作为字符的字面意义。
[root@localhost shell]# cat yy.sh
#!/bin/bash
var1=100
echo $var1
echo "$var1"
echo '$var1'
[root@localhost shell]# bash yy.sh
100
100
$var1
命令替换
命令替换是指将命令的标准输出作为值赋给某个变量。Shell 中有两种方式可以完成命令替换,一种是反引号(`),一种是 $()。$() 支持嵌套,而反引号不行。
[root@localhost shell]# cat th.sh
#!/bin/bash
date01=`date`
date02=$(date)
echo $date01
echo $date02
[root@localhost shell]# bash th.sh
2020年 10月 10日 星期六 09:59:41 CST
2020年 10月 10日 星期六 09:59:41 CST