详解Linux中关于引号的那些事
作者:daisy 发布时间:2022-04-30 22:57:36
本文详细的给大家介绍了关于Linux中引号的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
引号
我们将把编写脚本的事情暂时搁在一边,然后来讨论一些,我们一直在用的,但是没有解释的东西。引号在这一节里面,我们会讲述引号。引号有两个作用:
控制字符替换 和
执行将单词包含在一起的功能
我们已经使用过引号。在我们的脚本里面,将文本信息赋值给常量的赋值操作就使用了引号:
在上面这个例子中,文本信息是被双引号包括住的。我们使用双引号的原因是---我们要把所有单词包括住,当作一个整体来对待。如果我们没有使用引号,那么bash解释器,就会将所有位于第一个单词后面的单词,解释为其他的命令(第一个单词被解释为命令)。
尝试一下运行下面的命令,看看有什么效果出来:
单引号和双引号
shell解释器可以识别双引号和单引号。 下面的复制表达式效果是等价的:
然而,在双引号和单引号之间存在一个重要的差别。 单引号,在字符替换方面有限制。 正如我们在上一节所看到的内容一样,你可以将一个变量放在双引号里面,而shell解释器依然会对变量执行字符替换的操作。
我们可以通过使用echo
命令来查看这种效果:
如果我们将上述的双引号改为单引号,那么,行为将会改变:
双引号并没有限制---以"$"开头的变量的字符替换,不过,它的确对通配符的扩展效果进行了限制。
比如,下面这个例子:
引用单个字符
还有另外一种引用字符你会碰到的。 它就是反斜杠。The backslash tells 反斜杠告诉shell解释器忽略反斜杠符后面的第一个字符。比如:
通过使用反斜杠符,shell解释器忽略了对"$"符号进行解释。既然shell已经忽略了"$",那么,shell解释器也就不会对$HOSTNAME
执行字符替换了。
下面,给出一个更有用例子:
正如你所看到的,通过使用反斜杠符号,我们可以将双引号包含在文本里面。
反斜杠的其他使用技巧
如果,你阅读过任何软件的使用手册,并且这手册是由GNU项目完成的,那么,你会发现,在软件的命令选项中,除了以一个下划线_加一个字母的形式出现之外,还有,以两个下划线加一个完整的单词的形式出现。例如,下面两个语句是等价的:
为什么在软件中,这两种形式都是支持的呢?短的那种形式,是专门为那些懒的输入员而设定的,而长的那种形式,是专门为写脚本而存在的。我有时候,是混合着使用上面的两种形式,然后,我发现采用长的命令选项有用,如果,我写了一个脚本,并且,我将在几个月后去阅读它。看到长的命令选项,有助于我理解这个命令选项是什么意思,从而省却我去查man手册的功夫。现在多敲几下键盘,会以后节省很多功夫。 这样,懒惰的原则就保持住了。
你有可能会疑虑,使用长的命令形式,会导致一个单独的命令变得很长。 为了与这个问题斗争,你可以使用反斜杠来让shell解释器忽略换行符号,正如下面的操作:
这样使用反斜杠,可以让我们将每行的内容包含在一个单独的命令中。让这个技巧可以应用,要注意的地方:换行,必须在反斜杠后面马上出现(也就是,在输入了反斜杠之后,就必须换行了)。 如果,你将一个空格符放置在反斜杠后面,那么,空格符号会被忽略,而不是换行符被忽略。反斜杠符,也可以被用于,将特殊的符号插入到文本。special characters into our text. 这些符号,被叫做---转移字符,下面就有一些转移字符:
转义字符 ....................... | 名字 | 可能的用途 |
n | 换行符 | 添加空白行在文本中 |
t | 制表符 | 将水平制表符添加到文本中 |
a | 提醒 | 让你的终端发出嘟嘟声。 |
\ | 反斜杠 | 插入一个反斜杠符 |
f | formfeed | Sending this to your printer ejects thepage |
转移字符的应用很常见。非常常见转移字符,这个想法,首先出现在C语言里面。编程语言今天,shell解释程序,C++,perl,python,awk,tcl和其他程序语言都使用了转移字符这个概念。通过使用echo命令的-e选项,我们将展示上述转移字符的应用:
总结
猜你喜欢
- 我在vmware上使过Ubuntu6、7和8,它们都存在这样一个问题:通过DHCP,能够取到DNS服务器地址,但是不起作用。结果就是导致域名
- 一条逐渐被证明成熟、可靠的通信行业商业规律正浮现在大家的眼前:第一,给你的手机起个叫“×Phone&
- 第一条:总有人抱怨现在的seo优化的效果不如几年前了,他们总是说如果早些开始,现在早该如何如何了。而这正是seo优化者最常见的一个误区,se
- 博客(Blog)、维基(Wiki)、播客(Podcast)、RSS阅读改变了人们对传统门户网站的依赖,那么从Gmail开始,人们将改变传统电
- 上篇文章在docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -vsudo docker run -p 8822:8
- SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪
- 前两年,曾指导一位擅长Photoshop的朋友制作了自己的网站,现将有关实战案例介绍一下:一、网站定位这位朋友非常喜爱平面设计,尤其擅长Ph
- 前言通过 Linux 上的日历,不仅仅可以提醒你今天是星期几。诸如 date、cal、 ncal 和 calendar 等命令可以提供很多有
- 四、修改pam[root@localhostpam_mysql]#cd/etc/pam.d[root@localhostpam.d]#cp/
- Windows2003服务器安装及设置教程好久没有更新了,正好最近上了一台服务器,正好把剩下的几篇补全,今天先说的是MySQL安全篇——将M
- 网易公司今天宣布了截止到2009年12月31日的第四季度及年度未经审计财务业绩。网易2009年第四季度财务业绩收入2009年第四季度总收入1
- 很多Exchange管理员都碰到一个头痛的问题:日志文件霸占磁盘空间。磁盘空间是有限的;但是Exchange只要在运行,日志文件的产生就是无
- 本文记录了VMware Workstation14 Pro安装UBuntu17.04的具体方法,供大家参考,具体内容如下UBuntu之前用c
- Linux静态库与动态库实例详解1. Linux 下静态链接库编译与使用首先编写如下代码:// main.c#include "t
- 北京时间12月2日消息,据国外媒体报道,金融顾问公司Collins Stewart分析师桑迪普·阿格瓦尔(Sandeep Aggarwal)
- 对两个虚拟SMTP服务器防止垃圾邮件中转的总结我对两个虚拟SMTP服务器防止垃圾邮件中转的总结:在论坛上看到了很多高手的发言,结合自己在实践
- 网络赚钱的方法很多。目前,Google Adsense是多数人最佳的选择。一些基本的优化技巧可以使您的Google Adsense收入翻倍。
- 近日,澳洲电讯宣布了收购皓辰传媒及泡泡网两家公司55%股份的消息,皓辰传媒旗下拥有IT168和Che168两家网站,而泡泡网旗下则拥有 *
- 12月16日,国内知名CMS厂商PHP168发布了其最新版的V6.02增强版,这个版本跟上一个版本相比,共改进了27项功能。大家如果对能需要
- 3月3日消息,百度已正式成立客户端部,将统领原有的客户端软件部、客户端软件业务部、千千音乐部等三个部门。原百度客户端软件总监王啸将另有任命,