shell中符号使用
为什么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中符号使用相关推荐
- shell中符号含义
看这里https://blog.csdn.net/qq_34037046/article/details/86662736 或这里https://www.cnblogs.com/whiteprism/ ...
- Day25 linux shell中的特殊符号与命令
2019独角兽企业重金招聘Python工程师标准>>> linux shell中的特殊符号 *:代表零个或多个任意字符 ?:只代表一个任意字符,不管是数字还是字母,只要是一个字符,都 ...
- shell中几个特殊的符号
shell中定义了一些特殊的字符,除了$指代变量,,>,|进行标准I/O重定向之外 ,还有下面一些字符: ` 这个符号(就是在Tab和Esc之间的那个键)用于执行命令替换,例如出于某 ...
- shell中的特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `comm ...
- shell 中的特殊符号的含义
来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 学习撰写 script 最迅速的捷径是观摩别人的 script 档案.不过,此法儘管实际 ...
- shell 中的特殊符号的含义---留着以后自己查看
感谢原作者!!! 跟網路農夫了解UNIX SHELL-(Bash scripting 简介 第四章 特殊符号) (2007-08-13 09:49) 分类: Shell 第四章 基本功 - 特殊符号 ...
- 在shell中常用的特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- linux脚本除号,shell中常用的特殊符号整理
在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...
- linux什么符号表示未结束,Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)...
井号 (comments) 这几乎是个满场都有的符号. !/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. This line is ...
最新文章
- 端口复用及其实现分析[Google Patch]
- 网站优化工作关键——稳定排名!
- [召集] .NET Framework基本类库中的设计模式
- 利用世界杯,读懂 Python 装饰器 1
- 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
- html里嵌入语音,HTML5语音合成API语音/语言支持
- hivesql修改字段类型_Hive SQL语法总结
- 回文字符串(51Nod-1092)
- simple-word-Highlighter 支持网址正则表达式匹配
- 哪些专业软件可以测试cpu,常用的正经CPU测试软件有哪些
- 定义网络营销,到底和网店有什么区别
- jbod ugood 磁盘驱动状态_JBOD磁盘配置和StorCLI命令使用小结
- 微信小程序实验四 —— 扫雷游戏
- 《My Fair Lady》All I want is a room somewhere
- 经典 正则表达技术文档
- 刘强东:京东高管降薪10%-20% 拿百亿投向基层员工
- 车联网开发板_车联网开发.PDF
- Android开发面试经典题目
- 跌停的奥飞娱乐 在“盲盒“市场上还有一席之地吗?
- nginx+keepalived构建主主负载均衡代理服务器