shell编程之转义与引用

Posted 永远不要矫情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之转义与引用相关的知识,希望对你有一定的参考价值。

1.转义
转义指的是使用转义符引用单个字符,从而使其表达单纯的字符的字面含义,而不解释其特殊的含义。shell中的转义字符为"",例如:想打印字符"$array",不使用转义,若该变量未被声明,则打印空行;想打印"$array",需要在$面前加转义

[root@node1 ~]# echo $array

[root@node1 ~]# echo \\$array
$array

2.引用
引用指的是将字符串用某种符号括起来,以防止特殊字符被解析成其他意思。shell中总共有四种引用,分别是单引号,双引号,反引号和转义符。

  • 双引号又叫部分引号或者弱引用,可以引用除$符,反引号,转义符之外的所有字符;

  • 单引号为全引用或强引用,可以引用所有字符

  • 反引号则会将引用起来的内容解释为系统命令

1.部分引用

部分引用指的是双引号括起来的引用,在这种引用方式中,$符,反引号,转义符依然会被解释为特殊意义。例如:输出变量的值

[root@node1 ~]# array=10
[root@node1 ~]# echo "$array"
10
[root@node1 ~]# echo $array
10

2.全引用

全引用指的是单引号括起来的引用。括起来的所有字符都只是当做普通字符。例如:

[root@node1 ~]# array=10
[root@node1 ~]# echo '$array'
$array

若全引用里面还包括单引号,则会出现问题,因为shell不知道哪个单引号是引用的结束符。例如:

[root@node1 ~]# echo 'It's a dag'
> 

想要解决有两种方式:

[root@node1 ~]# echo "It's a dag"
It's a dag
[root@node1 ~]# echo 'It'\\''s a dag'
It's a dag

以上是关于shell编程之转义与引用的主要内容,如果未能解决你的问题,请参考以下文章

linux12shell编程 --> 三剑客之sed命令

:引用““与转义 第六章:退出和退出状态exit

:引用““与转义 第六章:退出和退出状态exit

for / while / until 基础循环语句案例图解 shell编程之循环语句

shell编程之shell字符

shell脚本——编程之循环语句(forwhileuntil)