为什么80%的码农都做不了架构师?>>>   

在编写shell脚本时,会经常地使用到单引号、双引号、反引号这些特殊的符号。它们在shell中有着不同的作用,但容易被误用和引起混乱。简单总结一下三者的使用和区别。

单引号

它关闭shell中所有的特殊符号使用和解释,即单引号间的内容全部以普通字符的含义进行文本使用和解释,不管是特殊字符 $ ,还是转义字符之类的。例子:

?
1
2
~$ a=12;test='this is a $a \$ `date`';echo$test
this is a $a \$ `date`

双引号

它关闭shell中大部分的特殊符号,但是某些保留,比如 $ ,转义字符 \(不包括\n,\t之类),反引号字符,单引号字符在双引号中时作为普通字符,不具有上面的功能作用。例子:

?
1
2
3
4
5
6
7
8
9
10
11
~$ a=12;test="this is a $a \b `date`";echo$test
this is a 12 \b Thu Mar 21 15:24:45 HKT 2013
~$ a=12;test="'this is a $a \b `date`'";echo$test
'this is a 12 \b Thu Mar 21 15:32:09 HKT 2013'
~$ a=12;test="this is a $a \n `date`";echo$test
this is a 12 \n Thu Mar 21 15:40:09 HKT 2013
~$ a=12;test="this is a $a \$ `date`";echo$test
this is a 12 $ Thu Mar 21 15:40:38 HKT 2013

单引号、双引号用于把带有空格的字符串赋值给变量,如果没有单引号或双引号,shell会把空格后的字符串解释为命令,即把空格作为变量赋值的结束。

?
1
2
~$ a=13;test1=this is a $a \b `date`;echo$test1
is:commandnot found

特别注意:在shell脚本中进行变量的赋值时,变量名、等号和变量值之间不能有空格,否则就是上面一样的错误。

反引号

它的作用是命令替换,将其中的字符串当成shell命令执行,返回命令的执行结果,见上面的例子。反引号包括的字符串必须是能执行的命令,否则会出错。例子:

?
1
2
3
4
5
~$ a=12;test=`this is a $a \b `date``;echo$test
Nocommand'this'found, did you mean:
Command'thin'from package'thin'(universe)
this:commandnot found
date

符号$( )的作用和反引号的一样,都是命令替换:

?
1
2
~$echo$(date)
Thu Mar 21 15:54:15 HKT 2013

反斜杠

反斜杠一般用作转义字符,如果echo要让转义字符发生作用,就要使用-e选项,且包含转义字符的字符串要使用双引号

?
1
2
3
4
5
~$echo"this is a \n test"
this is a \ntest
~$echo-e"this is a \n test"
this is a
test

反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。

转载于:https://my.oschina.net/guyson/blog/340306

shell中符号使用相关推荐

  1. shell中符号含义

    看这里https://blog.csdn.net/qq_34037046/article/details/86662736 或这里https://www.cnblogs.com/whiteprism/ ...

  2. Day25 linux shell中的特殊符号与命令

    2019独角兽企业重金招聘Python工程师标准>>> linux shell中的特殊符号 *:代表零个或多个任意字符 ?:只代表一个任意字符,不管是数字还是字母,只要是一个字符,都 ...

  3. shell中几个特殊的符号

    shell中定义了一些特殊的字符,除了$指代变量,,>,|进行标准I/O重定向之外 ,还有下面一些字符:      `  这个符号(就是在Tab和Esc之间的那个键)用于执行命令替换,例如出于某 ...

  4. shell中的特殊符号

    在shell中常用的特殊符号罗列如下: # ; ;; . , / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `comm ...

  5. shell 中的特殊符号的含义

    来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 学习撰写 script 最迅速的捷径是观摩别人的 script 档案.不过,此法儘管实际 ...

  6. shell 中的特殊符号的含义---留着以后自己查看

    感谢原作者!!! 跟網路農夫了解UNIX SHELL-(Bash scripting 简介 第四章 特殊符号) (2007-08-13 09:49) 分类: Shell 第四章 基本功 - 特殊符号 ...

  7. 在shell中常用的特殊符号

    在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ...

  8. linux脚本除号,shell中常用的特殊符号整理

    在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...

  9. linux什么符号表示未结束,Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)...

    井号 (comments) 这几乎是个满场都有的符号. !/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. This line is ...

最新文章

  1. 端口复用及其实现分析[Google Patch]
  2. 网站优化工作关键——稳定排名!
  3. [召集] .NET Framework基本类库中的设计模式
  4. 利用世界杯,读懂 Python 装饰器 1
  5. 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
  6. html里嵌入语音,HTML5语音合成API语音/语言支持
  7. hivesql修改字段类型_Hive SQL语法总结
  8. 回文字符串(51Nod-1092)
  9. simple-word-Highlighter 支持网址正则表达式匹配
  10. 哪些专业软件可以测试cpu,常用的正经CPU测试软件有哪些
  11. 定义网络营销,到底和网店有什么区别
  12. jbod ugood 磁盘驱动状态_JBOD磁盘配置和StorCLI命令使用小结
  13. 微信小程序实验四 —— 扫雷游戏
  14. 《My Fair Lady》All I want is a room somewhere
  15. 经典 正则表达技术文档
  16. 刘强东:京东高管降薪10%-20% 拿百亿投向基层员工
  17. 车联网开发板_车联网开发.PDF
  18. Android开发面试经典题目
  19. 跌停的奥飞娱乐 在“盲盒“市场上还有一席之地吗?
  20. nginx+keepalived构建主主负载均衡代理服务器

热门文章

  1. 配置yum源并与公网同步更新
  2. 如何在Kubernetes集群动态使用 NAS 持久卷
  3. 子元素绝对定位absolute后,自动撑开宽度
  4. RocketMQ源码 — 十一、 RocketMQ事务消息
  5. 坑爹的PHImageManager和PHImageRequestOptions
  6. LintCode_420 报数
  7. Microsoft Build 2016 有关微软公有云Azure
  8. POJ 3126 Prime Path(筛法,双向搜索)
  9. Oracle 11g sys,system 密码忘记设置解决办法
  10. [Korean]发音