1.字符串变量定义的三种方式

Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量。示例如下:

str1="testString" #双引号
str2='testString'    #单引号
str3=testString        #无引号

因此字符串变量的定义有三种方式,分别是双引号、单引号和无引号。这三种方式有什么区别呢?单引号和双引号又有什么区别呢?

2.单引号

单引号定义字符串所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号是全引用,被单引号括起的内容不管是常量还是变量都不会发生替换。

var=dablelv
echo '$var'

输出:

$var

3.双引号

双引号引用的内容,所见非所得。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容。双引号是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。

var=dablelv
echo "$var"

输出:

dablelv

4.无引号

不使用引号定义字符串时,字符串不能包含空白字符(如Space或Tab),需要该加引号,一般连续的字符串,数字,路径等可以不加引号。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容。

str1="test String"
str2='test String'
str3=test Stringecho $str1
echo $str2
echo $str3

输出:

test String
test String

可见,字符串中包含有空格时不使用引号括起来,将无法正常输出。

5.建议

字符串常量使用单引号括起来,如果字符串中含有变量、命令等使用双引号括起来,不建议不加引号。


参考文献

[1]grep 后加单引号、双引号和不加引号的区别

Shell 双引号和单引号的区别相关推荐

  1. (双引号)与 ' '(单引号)的区别

    " "(双引号)与 ' '(单引号)的区别 还是回到我们的command line来吧 经过前面的学习,应该很清楚当你在shell prompt后面敲打键盘.直到按下enter的时 ...

  2. oracle数据库--Oracle双引号和单引号的区别小结

    注意: 在取别名,某些to_char中,以及创建表空间名字 还有创建用户的密码时,这些时候需要使用双引号.双引号里面的内容是严格区分大小写,单引号则不用,系统自动翻译成大写. 其他一些情况如下: 一般 ...

  3. C语言(CED)C语言中双引号和单引号的区别

    最简单的区别: 在字符型变量赋初值时,用单引号:为字符串变量赋初值时用双引号! 具体区别: 1.大小 单引号引起的一个字符,其大小为1个Byte. 双引号引起的字符串,因为在其结尾需加一个二进制&qu ...

  4. c语言双引号和单引号的区别_Python中的单引号和双引号有什么区别?

    在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式可以避免出错之外,还可以减少转义字符的使用,使程序看起来更清晰. 举两个例子: 1.包含单引号的字符 ...

  5. shell双引号、单引号、反撇号的使用

    1.命令和文件自动补全 Tab键 2.常见快捷键 ^c 终止前台运行的程序^z 将前台运行的程序挂起到后台^d 退出 等价exit^l 清屏 ^a |home 光标移到命令行的最前端^e |end 光 ...

  6. postgres 注意双引号和单引号的区别

    双引号用于表名.列名 单引号用于值 const sql = `INSERT INTO "message"."sqs_events" ("message ...

  7. c语言双引号和单引号的区别

    两者是不同的 'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值; "A"是个字符串

  8. JavaScript 中双引号、单引号和反引号的区别

    关注微信公众号:前端充电宝,获取最新原创文章: 在 JavaScript 中,单引号('')和双引号("") 经常用于创建字符串.通常情况下,使用双引号或单引号没有区别,它们最后都 ...

  9. shell 脚本中双引号、单引号、反引号的区别,其他命令

    如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止 ...

最新文章

  1. mysql中sql语句
  2. 嵌入式软件工程师笔试题(含答案)
  3. linux svn missingargument -m,缺少參數-m在windows powershell中使用svn。
  4. 入门架构——单机高性能
  5. python查看方法作用_python学习笔记1,新手小白也能看得懂
  6. 从零单排学Redis【白银】
  7. Tomcat7的安装与配置
  8. QT中鼠标位置获取问题之event-globalPos()与pos()函数
  9. iOS开发学无止境 - 这样好用的ReactiveCocoa,根本停不下来
  10. 反应堆Reactor
  11. chown -r oracle:oinstall /oracle,CentOS7安装Oracle12c图文详解
  12. Spring源码总结与分析
  13. HDU 1222 Wolf and Rabbit(gcd)
  14. python函数abs()
  15. python程序题求roc-auc是一种常用的模型评价指标_【Python机器学习 5-3】模型评价指标及模型选择...
  16. c语言谭浩强简介,大一C语言谭浩强总结(到数组)简介.ppt
  17. 数据库基础知识和SQL语言
  18. 2009年英国大学综合排名
  19. 计算机硬件故障视频,电脑提示“没有视频硬件”怎么办
  20. bde oracle 商友的流程_BDE动态连接Oracle数据库

热门文章

  1. 分享Java 中如何运行字符串表达式?
  2. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)
  3. Android中ContentProvider组件详解
  4. 用Aliyun E-MapReduce集群的sqoop工具和数据库同步数据如何配置网络
  5. 3.3 rsync同步之ssh隧道方式
  6. Comparable 与 Comparator
  7. 又拍网架构-又一个用到python的网站(转载)
  8. python利用gzip压缩解压缩StringIO
  9. 蓝桥杯 ALGO-60 算法训练 矩阵乘方
  10. [Java] 蓝桥杯PREV-5 历届试题 错误票据