专栏导航
下一篇:无
本节前言
对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。
我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。
另外呢,本专栏是一个整体,是用来系统化地讲解 Linux 0.12 内核的一套教程。所以呢,也需要你在学习本节课程的时候,注意专栏的体系完整性。
比如软件安装,我们需要在整个专栏中,安装一套软件,那你如果是为了学习 Linux 0.12 内核,那么,你就需要跟随着本教程,安装好一整套软件,而不可以孤立地看着某个课节。
比如说,我们的专栏中,会讲解 Bochs 模拟器 的安装。这个软件的安装,就需要在我们专栏中所指定的乌班图 26.04.1 版本里面进行。脱离了这个系统版本,你在其它的版本的乌班图里面,或者是在其它的 Linux 发行版里面来安装,那么,你可能会安装不上。
所以,请大家在学习本专栏的课节的时候,务必要注意本专栏的体系完整性,注意查看本专栏的目录。
本节内容,比之前的几个命令复杂一些。因为,echo 命令的执行需要有参数。
我们开始。
一. echo 基本讲解
首先呢,还是请大家打开虚拟机乌班图系统,然后在桌面上打开一个终端,并将终端处理成下图所示的纯净状态。
图1
echo 命令,可以让终端显示字符串。这个命令,通常被称作回显命令。Windows 也有同名的命令,功能一样,都是让命令行界面显示字符串。
之所以设置这个东西,是因为,在终端里面,也需要有类似于 C 语言的 printf 函数的命令,来显示一些个信息。
它有几种格式。
格式一:echo + 空格 + 你想要显示的字符串。
格式二:echo + 空格 + 英文的一对双引号里面括起来的字符串
格式三:echo + 空格 + 英文的一对单引号里面括起来的字符串
接下来,我们分这三种情形,来讲解 echo 命令的基本用法。
(一)格式一的演示
我们在图1 所示的终端里面输入【echo linux】,如下图所示。
图2
然后我们在图2 里面按下回车,结果如下图所示。
图3
如图3 所示,红色框线的位置,显示了 echo 后面的字符串【linux】。
这个就是格式一的演示了。
(二)格式二的演示
我们在图3 的终端里面,输入【echo "kernel"】,如下图所示。
图4
然后我们在图4 里面按下回车键,结果如下图所示。
图5
在图5 里面,红色框线的位置显示了 echo 后面,用英文双引号对括起来的字符串【kernel】。
注意,是一对英文双引号,而不是中文双引号。
以上,为格式二的演示。
(三)格式三的演示
我们在图5 所示的终端里,输入【echo 'Linux kernel'】,如下图所示。
图6
然后我们在图6 所示的终端里按下回车键,结果如下图所示。
图7
在图7 里面,红色框线的位置显示了 echo 后面,用一对英文单引号括起来的字符串【Linux kernel】。
注意,是一对英文单引号,而不是中文单引号。
以上,为格式三的演示。
(四)显示双引号与单引号
不知道,大家会不会有疑问,如果我们想要显示双引号,那得咋办呢?
请看下面的案例演示。
图8
图8 中,红色框线所示的命令,不知道大家是否有看懂。我在输入的时候,在 echo 与空格后面,我首先输入了一对英文单引号,然后按一下左方向键,将光标定位到两个单引号之间,然后输入了**一个(注意,是一个,不是一对哦)**英文双引号。
我们再来尝试几种方法。如下面的演示所示。
图9
在图9 里面,我们首先看红色框线的部分。我们在 echo 和空格后面,输入了一个反斜杠【\】,然后紧接着输入了一个英文双引号****(是一个,而不是一对),结果呢,就能够正常显示一个双引号了。
在青色框线里面,我们在图9 的【反斜杠 + 一个英文双引号】之外,又加上了一对英文双引号,结果,也是正常显示了一个英文双引号。也就是说,在图9 的红色框线与蓝色框线里面,反斜杠被当成了转义字符。
我们再来尝试一下,在一对英文单引号里面,包含一下【反斜杠 + 一个英文双引号】组合,看看结果。
图10
如图10 所示,当我们用一对英文单引号,来括起【反斜杠 + 一个英文双引号】的时候,显示结果会是红色框线所示,将反斜杠与其后的紧接着的一个英文双引号直接显示。
反斜杠,可以作为转义字符。但是呢,大家也看到了,在一对英文双引号里面,它可以转义英文双引号。
但是呢,在一对英文单引号里面,它不能够转义一个英文双引号,而是会将反斜杠按字面含义来输出显示。
接下来,我们再来看一看显示一个英文单引号的情形。
图11
如图11 的红色框线部分所示,想要显示一个单引号,可以在 echo 与空格之后,输入【反斜杠 + 一个英文单引号】组合,回车执行,就可以了。
也可以在 echo 与 空格之后,先输入一对英文双引号,然后按一次左方向键,将光标定位到两个英文双引号之间,然后输入一个英文单引号,然后回车执行,也可以显示一个英文单引号。
然后呢,我们是否也可以像之前显示英文双引号那样子,在一对英文单引号里面,包含着【反斜杠 + 一个英文单引号】组合,以显示一个英文单引号呢?
就像下面的红色框线所输入的这样子。
图12
我提前回答吧。不行。
因为,在 echo 命令里面,在一对英文单引号中,反斜杠不会被当作转义字符,仅仅会被当作字面含义的反斜杠而已。
这样一来,echo 命令会把 '\' 看作一个组合,意思是显示一个反斜杠。然后呢,【echo '\''】命令中,反斜杠之后的第二个英文单引号,就被作为第二对英文单引号的起始符号了。可是,它后面不再有英文单引号了。我们可以将图12 中红色框线的部分改成下面的命令去执行。
图13
如图13 所示,我们在【'\'】之后,紧接着,又加上了【'abcd'】组合。
这样一来,显示结果,是将前者的【\】显示结果与【abcd】显示结果给拼接起来了。
如果,你直接写上图12 的红色框线所示的命令,显示结果会是下图所示。
图14
如图14 所示,另起一行,显示了一个大于号。这个是啥意思呢?
意思是说,我们图14 的最后一个命令,它不完整,终端要求你补上其它内容,再执行。
我们在图14 所示的终端里,再输入一个英文单引号,如下图所示。
图15
然后呢,我们在图15 所示的终端里面,按下回车键,结果如下图所示。
图16
在图16 里面,为啥在显示了一个反斜杠以后,又显示了一个空行,然后才是命令提示文字与光标呢?
这是因为,我们当初在【echo '\''】命令之后,按下了一个回车键。【echo '\''】的最右边的英文单引号与红色框线里面大于号右边的单引号,组成一对英文单引号,而我们当初在【echo '\''】命令之后按下的那个回车键被当成了英文双引号对之间的输入了,结果呢,就使得红色框线里面,显示了一个反斜杠以后,又显示了一个空行,然后才正常显示命令提示文字与光标。
那个空行,便是我们当初在【echo '\''】命令之后按下的那个回车键的作用。
(五)显示一个反斜杠
我们先在图16 所示的界面里,输入【clear】,然后回车执行,以清理命令行环境,结果如下图所示。
图17
然后呢,我们显示一个反斜杠的命令执行情况如下图所示。
图18
(六)两段字符串的拼接
我们来看一看,两段字符串的拼接显示的情况。
在这里,我先给出一些个知识提示。
- 两对英文双引号分别包含着字符串,这两对双引号之间紧挨着而无空格,则两对英文双引号里面所包含的字符串可以直接拼接在一起。
- 两对英文单引号分别包含着字符串,这两对单引号之间紧挨着而无空格,则两对英文单引号里面所包含的字符串可以直接拼接在一起。
- 一对英文双引号与一对英文单引号,它们分别包含着字符串,且这对双引号与单引号之间无空格,则两组字符串可以直接拼接在一起。
- 一个字符串被一对英文双引号或者一对英文单引号夹着,另一个字符串两边无单引号对或者双引号对,这两组字符串之间可以直接拼接在一起。也就是,有马甲的字符串和无马甲的字符串可以直接拼接在一起。
- 两个有马甲的字符串,无论是两个有马甲字符串都用英文双引号来夹着,还是都用英文单引号来夹着,还是说一个用英文双引号来夹着而另一个用英文单引号来夹着,这两个有马甲字符串之间若是有空格,那么,你可以将其看作三段字符串的拼接。先将第一个带马甲字符串和无马甲的空格字符串拼接在一起,拼接好的结果在与第二个带马甲字符串来进行拼接运算,形成最终结果。
接下来,我们要去进行实战与分析了。
首先呢,请大家执行一次 clear 命令,将图18 所示的终端给清屏。然后呢,我们来看下图所示的案例。
图19
图19 中的字符串拼接情况,大家自行来分析吧。
可以多参考前面的知识提示。
有点累了,所以,偷个懒,你自己先来分析吧。如果不会,可以在评论区告诉我。
(七)反斜杠作为转义字符
关于反斜杠与转义字符的问题,我们再进行一点小结与补充。
在一对英文单引号里面,反斜杠不作为转义字符。
在一对英文双引号里面,反斜杠若是后面紧接着一个英文双引号(是一个而不是一对),形成【echo "\""】,则此时的反斜杠为转义字符。
在一对英文双引号里面,反斜杠的后面若是再接一个反斜杠,形成【echo "\\"】,则此时的第一个反斜杠也是转义字符。此案例的结果是,显示一个反斜杠。
一对英文双引号里面,反斜杠的后面若是紧接着一个英文单引号,形成【echo "\'"】,则此时的反斜杠不构成转义字符。此案例的结果是,显示一个反斜杠和一个英文单引号,且反斜杠和英文单引号紧挨着。
关于反斜杠与转义字符,我们就说这些了。
二. echo 命令的用处
学了这个命令,可是,到这里,我们却看不出来,它有啥作用。
基本上,echo 命令是用在脚本里面的东西。单独拿出来,其实还真没啥用。当然了,大家平时还是可以将这个命令作为玩乐之用。
而在实用方面,我认为,它可以在 Linux 的脚本里面,用来显示一些个提示信息。
至于,何为脚本,这个需要你自己来专门学习。
Linux 里面,有一种专门的脚本文件,通常以【.sh】作为后缀名。有一些个作者,专门写书,用来讲解 Linux 脚本。
即使不去专门写书,那么,在许多的 Linux 教材里面,它也是作为单独的一章来予以讲解。
关于 Linux 脚本,这是我学得不咋地的一个东西。
在我们的专栏里,Linux 脚本,并不作为我们的重点研究对象。你想要了解这个东西,你需要自己专门找 Linux 教材来学习。
在我们的专栏里,我们需要学习另一种脚本,叫做 makefile 脚本。我们需要用这个脚本,来编译 Linux 0.12 内核。这个脚本,它算是我们需要去学好的一个东西吧。
echo 命令,可以在【.sh】后缀的标准 Linux 脚本里面使用,也可以在 makefile 脚本里面使用。
结束语
关于 echo 命令,我仅能作出关于基本用法的一点讲解。
关于第一分节的(六)小节,希望你能够自己分析解读几种拼接的写法。
以后,我可能会对此加以解读和扩充。也可能不会。看大家的反馈了。
专栏导航
下一篇:无