详解Linux中关于引号的那些事

本文详细的给大家介绍了关于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选项,我们将展示上述转移字符的应用:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • linux shell中单引号、双引号、反引号、反斜杠的区别

    1. 单引号 ( '' ) # grep Susan phonebook Susan Goldberg 403-212-4921 Susan Topple 212-234-2343 如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件 # grep 'Susan Gold' phonebook Susan Goldberg 403-212-4921 当shel

  • Linux Shell中三种引号的用法及区别

    Linux Shell中有三种引号,分别为双引号(" ").单引号(' ')以及反引号(` `). 其中双引号对字符串中出现的$.''.`和\进行替换:单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为shell命令执行,并返回执行结果.具体含义如下: 双引号(" "):在双引号中,除了$, '', `和\以外所有的字符都解释成字符本身. 单引号(' '):在单引号中所有的字符包括特殊字符($,'',`和\)都将解释成字符本身而成为普通字符.

  • 详解Linux中关于引号的那些事

    本文详细的给大家介绍了关于Linux中引号的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 引号 我们将把编写脚本的事情暂时搁在一边,然后来讨论一些,我们一直在用的,但是没有解释的东西.引号在这一节里面,我们会讲述引号.引号有两个作用: 控制字符替换 和 执行将单词包含在一起的功能 我们已经使用过引号.在我们的脚本里面,将文本信息赋值给常量的赋值操作就使用了引号: 在上面这个例子中,文本信息是被双引号包括住的.我们使用双引号的原因是---我们要把所有单词包括住,当作一个整体来对待.

  • 详解 Linux中的关机和重启命令

    详解 Linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: -c:取消前一次关机命令 -h:关机 -r:重启 二 shutdown实战 [root@localhost tmp]# date Sat Jul 15 09:28:35 CST 2017 [root@localhost tmp]# shutdown -r 05:30 Shutdown scheduled for Sun 2017-07-16 05:30:00 CST, use 'shutdow

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • 详解Linux中zip压缩和unzip解压缩命令及使用详解

    下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3.把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4.把

  • 详解Linux中atime,mtime,ctime的使用场景

    目录 一.文件与文件夹三个时间:atime,mtime,ctime的含义 二.stat命令查看文件的时间 三.ll命令查看文件时间(对照stat命令可验证) 四.测试创建/修改文件的时间 五.常用命令关于文件时间相关 一.文件与文件夹三个时间:atime,mtime,ctime的含义 1.含义 atime(Access Time):文件最近被访问时间 mtime(Modify Time):文件最近内容修改时间 ctime(Change Time):文件最近权限和属性修改时间 2.文件的触发tim

  • 详解Linux中的awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

  • 详解Linux中两个查找命令locate和find教程

    Linux中有很多查找命令,今天主要讲解locate,find两个命令. 1.locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. (

  • 详解Linux中的wget命令

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载.这对从那些限定了链接时间的服务器上下载大文件非常有用. 语法 wget(选项)(参数) 选项 -a<日志文件>:在指定的日志文件中记录资料的执行过程: -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔: -b:进行

  • 详解Linux中vi命令大全

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻. vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line m

  • 详解Linux 中五个重启命令

    一.Linux 的五个重启命令 1.shutdown 2.poweroff 3.init 4.reboot 5.halt 二.五个重启命令的具体说明 shutdown reboot 在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令. 1.shutdown shutdown命令安全地将系统关机. 有些用户会使用直接断掉电源的方式来关闭li

随机推荐