Shell中常用的引号

Shell之引号

在Shell中经常会使用到单引号、双引号、反引号(键盘中Tab键上方的按键)、反斜线(转换某些Shell元字符的含义)。如我们有时希望echo命令输出的字符中就包含$符号本身,但一般情况下,Shell会将$视为取变量值,像这样的情况我们需要使用某些功能来屏蔽$符号本身的特殊含义,使其还原字面意义。

1. 反斜线

反斜线可以将紧随其后的单个字符视为字面意义上的字符,如*在Shell中代表任意字符,在查找时经常会使用*来查找多个匹配的文件,然而有可能你需要找的就是*字符本身,此时,\*将会把*作为字母意义上的普通字符。

另外,如果在命令的末尾使用\回车后,\可以将回车的命令提交功能屏蔽,从而将回车认为是换行继续输入命令,实现命令的多行输入功能。

[[email protected] ~]# echo *                        #显示当前目录的所有文件列表

anaconda-ks.cfginstall.log install.log.syslog

[[email protected] ~]# echo \*                       #显示*字符

*

[[email protected] ~]# echo \>                       #显示>符号

[[email protected] ~]# find / \                      #换行输入多行命令

> -name"test.txt" \

> -type f\

> -size+5M

2. 单引号

单引号可以将它中间的所有任意字符还原为字面意义,实现屏蔽Shell元字符的功能。注意,不可以在两个单引号中间单独插入一个单引号,单引号必须成对出现。

[[email protected] ~]# echo ‘$HOME‘                  #单引号将屏蔽$的特殊功能

$HOME

[[email protected] ~]# echo ’test\’                  #默认\为转义换行,这里也被屏蔽

test\

3. 双引号

双引号类似于单引号,但其不会屏蔽 `、\和$ 这样的元字符含义,如果需要屏蔽这些字符含义,必须前置一个\符号,其他字符的功能将被屏蔽(包括单引号)。也就是说,两个双引号之间的单引号不必成对出现。

[[email protected] ~]# echo "This‘s book."

This‘s book.

[[email protected] ~]# echo "$HOME"

/root

[[email protected] ~]# echo "\$HOME"

$HOME

4. 反引号

Shell中使用反引号进行命令替换,命令替换使Shell可以将命令字符替换为命令执行结果的输出内容。同样的功能也可以使用$()来实现。

[[email protected] ~]# echo "Today is `date +%D`"

Today is 02/09/13

[[email protected] ~]# echo "Today is $(date +%D)"

Today is 02/09/13

时间: 2024-12-20 15:50:29

Shell中常用的引号的相关文章

shell中常用的特殊符号

在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# [email protected] `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == != # 井号 (comments) 注释字符 该句不会被执行 ~ 帐户的 home 目录 用户的

shell中常用I/O重定向命令格式说明

命令1  >    文件1 将命令1的输出结果重定向到文件1 命令1  &>  文件1 将命令1的输出结果和标准错误输出一起重定向到文件1 命令1  >>  文件1 将命令1的输出结果追加到文件1中 命令1  2>  文件1 将命令1的标准错误输出的结果重定向到文件1中 命令1  <     文件1 将文件1作为命令1的标准输入 命令1 << 字符串1   允许连续输入数据,直到接收到字符串1(常用于邮件系统) shell中常用I/O重定向命令格式说

shell中$后加引号有什么用($&quot;string&quot;和$&#39;string&#39;)

有些时候在某些服务管理脚本中看到$"$string",经过一些测试,发现引号外面的$有和没有是一样的.刚才翻了下man bash,找到了解释. (1).如果没有特殊定制bash环境或有特殊需求,$"string"和"string"是完全等价的,使用$""只是为了保证本地化. 以下是man bash关于$""的解释: A double-quoted string preceded by a dollar si

[linux]shell中,反引号(`)的应用

反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 反引号位 (`)在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 举个例子: [email protected]:~$ date 2014年 10月 29日 星期三 15:14:46 CST [email protected]:~$ echo `date` | cut -d' ' -f1-4 2014年 10月 29日 星期三 可以看

Linux Shell 中的反引号,单引号,双引号

反引号 反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中. [[email protected] sh]# echo The date is `date` The date is 2016年 08月 7日 星期日  19:25:43 CST 单引号,双

Shell中的单引号(‘)双引号(”)和反引号(&#183;)

在bash中,$.*.?.[.].'.".`.\.有特殊的含义.类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统调用. 其中,反引号类似于函数调用,而不仅仅是简单的文本替换及匹配. 命令行中,被单引号引用的部分,其中所有的特殊字符按照普通字符解释: 双引号引用的部分,仅解释$(美元符号).\(\n \t除外).`(反引号),解释后的文本仅按照普通文字处理(同单引号). 反引号相当于命令替换,引用的部分优先执行

shell中的双引号,单引号,反引号

在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号.(注意是所有,只是单引号本身不能够出现在其中).例如: $ string=’$PATH’ $ echo $string $PATH 可见$保持了其本身的含义,作为普通字符出现. 双引号 “ 双引号用于保持引号内所有字符的字面值(回

Linux Shell中的反引号,单引号,双引号

反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中. [[email protected] sh]# echo The date is `date` The date is 2011年 03月 14日 星期一 21:15:43 CST 单引号.双引号用于

[Tips] Shell中常用的环境变量

常用环境变量 HOME: 使用者的目录地址 BASH: 目前使用的shell HISTSIZE: 保留历史命令的数目上限 PATH:系统默认的可执行文件搜索路径 LANG:系统使用的编码.很多程序是根据系统指定的编码去解析输入文件,如果编码不正确,很多文件就无法正确解析. RANDOM:随机产生一个0~32767之间的随机数 PS1:即命令提示符的格式,就是shell命令行前方的图标. $:表示当前shell的pid $> echo $$ ?:上一个shell命令的返回值 OSTYPE:系统类型