Shell脚本中 双引号(“”)单引号(‘’)反引号(``)的区别
1、由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。
2、由双引号括起来的字符,除$(美元符号)、\(反斜杠)、’(单引号)、和”(双引号)这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于“$”来说,就是用其后指定的变量的值来代替这个变量和$;对于“\”而言,是转义字符,它告诉shell不要对其后面的那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加上“\”的只有四个字符$,\,’和”本身。而对”号,若其前面没有加“\”,则Shell会将它同前一个”号匹配。
3、反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。如例程中的`date -d '-1 day' +%Y%m%d`就是把这条命令的结果赋给变量OPDATE。
4、反引号还可以嵌套使用。但需注意,嵌套使用时内层的反引号必须用反斜杠(\)将其转义。例如:
$ abc=`echo The number of users is \`who| wc -l\``
$ echo $abc
The number of users is 2
$
5、在反引号之间的命令行中也可以使用shell的特殊字符。Shell为得到``中命令的结果,它实际上要去执行``中指定的命令。执行时,命令中的特殊字符,如$,”,?等又将具有特殊含义,并且``所包含的可以是任何一个合法的Shell命令,如:
$ ls
note readme.txt Notice Unix.dir
$ TestString="`echo $HOME ` ` ls [nN]*`"
$ echo $TestString
/home/yxz note Notice
最后:
反引号是一个老的用法,$()才是新的用法,如例程中的$(seq 10)。无论是在学习中,还是在实际工作中,$()都是被推荐的用法。所以上面的的用法可以改成:
$ TestString="$(echo $HOME) $(ls [nN]*)"
$ echo $TestString
/home/yxz note Notice
对于脚本的执行情况,可以用下面的命令来分析:
sh -x test.sh
---------------------
作者:宋哥
来源:CSDN
原文:https://blog.csdn.net/iamlaosong/article/details/54728393
版权声明:本文为博主原创文章,转载请附上博文链接!
Shell脚本中 双引号(“”)单引号(‘’)反引号(``)的区别相关推荐
- shell 脚本中双引号、单引号、反引号的区别,其他命令
如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止 ...
- shell字符串中同时包含单引号和双引号的一种处理方法
字符串的几种标识方法 我们知道在shell中表示字符串一般是用单引号或者是双引号放在整个字符串的开头和结尾. 如果字符串中只包含单引号,那么可以用双引号括起来. 同理如果字符串中包含双引号可以用单引号 ...
- PYTHON 双引号 单引号 多引号区别
先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 = "hello,world" 如果要写成多行,那么就要使用/ ("连行符")吧 ...
- 关于shell脚本中双括号的问题
这段时间在写shell脚本,很疑惑的是,网上对shell变量的运算使用双括号"(())",于是在网上查了查: 使用方法: 语法: ((表达式1,表达式2-)) 特点: 1.在双括号 ...
- shell脚本中/bin/bash的作用
shell脚本通常第一句是#!/bin/bash,在很多情况中,如果没有设置好这一行,那么该程序很可能无法执行,因为系统无法判断该程序需要使用什么shell来执行 通俗点讲,#!/bin/bash: ...
- linux shell 双引号 单引号 使用推荐
output linux shell 双引号 单引号 使用推荐 input alias使用双引号还是单引号? 鸟哥-鸟哥的Linux私房菜 基础学习篇 3ed|301 algo 引号主要用于处理空格分 ...
- Python中单引号,双引号,三个单引号,外双单引号内双引号,外双引号内单引号的区别...
Python 中一对单引号和一对双引号都可表示一个字符串: 1 Str1 = 'python' 2 Str2 = "python" 思考? 如何表示字符串: I ' am a py ...
- python方括号里面单引号_Python中单引号,双引号,三个单引号,外双单引号内双引号,外双引号内单引号的区别...
Python 中一对单引号和一对双引号都可表示一个字符串: 1 Str1 = 'python' 2 Str2 = "python" 思考? 如何表示字符串: I ' am a py ...
- shell脚本中一些特殊符号
shell脚本中一些特殊符号 在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"strin ...
最新文章
- Prepare the Knowledge Base for Success
- 大连理工大学网络教育学院2014年3月份计算机原理课程补考试卷,大连理工大学网络教育2014年3月份自动化控制原理考试模.doc...
- mysql运行报错64bit_关于MySQL5.6.25在Win7 64bit下重装后无法启动的解决方法
- setfacl 权限导出_Linux如何使用setfacl命令创建权限文件
- web学习2--理解MVC及快速入门
- 单体预聚合的目的是什么_高分子化学实验指导书-修改-2012
- 【JAVA基础篇】final、finally和finalize
- dubbo+zookeeper与 eureka的区别
- python tkinter grid布局
- Python+OpenCV:OpenCV-Python绑定是如何工作的?
- Linux下PHP5.5编译参数详解
- 项目的webinf文件在哪_PMP章节练习(第四章:项目整合管理)
- 社会工程学之《反欺骗的艺术》的思考
- 基于C#的房屋租赁管理系统设计与实现
- 队列、栈以及双端队列
- 随着无人机将承担更多的作战任务,“AI辅助空战”或将应运而生
- 电子商务专业英语参考试卷
- 《StereoDRNet: Dilated Residual StereoNet》
- vue 前端解析Excel
- 透明度百分比8位色值