shell编程基础(学习shell脚本笔记)

转义和引用


1.转义

转义是指使用转义符引用单个字符,从而使其表达单纯的字符的字面含义。

shell中的转义符为"\\".

#试图打印“$Dollar”字符串的错误演示
[root@localhost ~]# echo $Dollar
                 ---> 此处打印为空,因为Shell尝试打印出变量Dollar的值,但是这个变量并没有声明,所以打印空行
#使用转义字符转义$字符
[root@localhost ~]# echo \$Dollar
$Dollar

#更多的例子
#打印乘号。如果不用转义符转义*号,则*号会作为一般的通配符使用,结果是将工作目录中的
所有目录和文件名替换它
[root@localhost ~]# echo 8 \* 8 =64
8 * 8 =64
#句子中含有引号。如果不用转义符转义'单引号,则Shell会等待出现另一个单引号才能结束echo进程
[root@localhost ~]# echo john\'s cat
john's cat

shell中的特殊含义的字符:

shell中的特殊含义的字符


2.引用

引用是指将字符串用某种符号括起来,以防止特殊字符被解析为其他意思。

shell中 一共有四种引用符 :

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

单引号: 又叫“全引用”或“强引用”,可以引用所有字符;

反引号: 会将反引号括起的内容解释为系统命令;

转义符:

(1).部分引用

部分引用是指用双引号括起来的引用。在这种引用方式中,$符、反引号(`)、转义符(\)这3种特殊字符依然会被解析为特殊意义。

#声明变量VAR03,并用echo打印出来。第一次直接打印,第二次用引号括起来,从输出内容看好像没什么区别
[root@localhost ~]# VAR03=100
[root@localhost ~]# echo $VAR03
100
[root@localhost ~]# echo "$VAR03"
100

#声明变量VAR03,内容为字符串,ABC之间有多个空格
[root@localhost ~]# VAR04="A   B   C"
#直接打印变量时,输出内容只保留了每个字母间一个空格
[root@localhost ~]# echo $VAR04
A B C
#使用引号括起的输出内容和变量定义时的内容是完全一致的
[root@localhost ~]# echo "$VAR04"
A   B   C

(2).全引用

全引用是指用单引号括起来的引用。

[root@localhost ~]# echo '$VAR03'
$VAR03
[root@localhost ~]# echo '$VAR04'
$VAR04


3.命令替换

命令替换是指将命令的标准输出作为值赋给某个变量。

​ 比如,在某个目录中输入ls命令可查看当前目录中所有的文件,但如何将输出存入某个变量中呢?这就需要使用命令替换了,这也是Shell编程中使用非常频繁的功能。

​ shell中有两种方式可以完成命令替换:

[root@localhost ~]# `命令`[root@localhost ~]# $(命令)

注意:$()支持嵌套,而反引号不行;$()仅在Bash Shell中有效,而反引号可在多种UNIX Shell中使用。

​ 下例使用两层嵌套:

[root@localhost ~]# Fir_File_Lines=$(wc-l $(ls | sed-n '1p'))
[root@localhost ~]# echo $Fir_File_Lines
36 anaconda-ks.cfg
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐