专栏首页C/C++基础Shell双引号和单引号的区别

Shell双引号和单引号的区别

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 String

echo $str1
echo $str2
echo $str3

输出:

test String
test String

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

5.建议

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


参考文献

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Go Modules

    Go 1.11 和 1.12 包括了初步的 support for modules,这是 Go 的新的依赖管理系统,它使依赖版本信息更加明确和易于管理。这篇博客...

    Dabelv
  • C++栈展开如何防止内存泄露

    在栈展开(stack unwinding)是指,如果在一个函数内部抛出异常,而此异常并未在该函数内部被捕捉,就将导致该函数的运行在抛出异常处结束,所有已经分配在...

    Dabelv
  • shell编程知识点集锦

    shell脚本是按行分隔每一条shell语句。如果每一条shell语句写在单独一行,此时可以加分号,也可以不加,没有什么区别。如果多条shell写在同一行,那么...

    Dabelv
  • Shell 黑科技之匿名函数实现任务并行化

    shell 作为一门系统级别胶水语言,学习成本低,用起来很方便,但是缺点也显而易见:性能问题一直为人锁诟病。所以 shell 也就多用在简单的系统管理等场合,数...

    用户1177713
  • 5G 降世,安防蝶变

    过去两个月,雷锋网AI掘金志陆续采访了大华股份总裁李柯、宇视总裁张鹏国、海康威视高级副总裁徐习明等人,三位世界级安企领袖鲜见地均谈到了一个观点:

    AI掘金志
  • 企业级SpringBoot与Dubbo的并用

    SpringBoot越来越热门以至于达到烂大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很不好意思呢...

    lyb-geek
  • python 应用thrift---- thrift的监控fb303 -

    2011-08-18 fb303 在thrift的源码包 contrib之中 * What does it provide? * A standard in...

    财主刀刀
  • TypeScript 设计模式之享元模式

    享元模式就是运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类。在享元模式中有两个重要的概念,即内部状态和...

    semlinker
  • 对话魏少军、赵伟国:一年进口3120亿美金芯片意味着什么?

    9月11日,网易科技和杨澜联合推出的节目《致前行者》第二期《中国芯片,路在何方?》正式上线。杨澜对话清华大学微电子所所长魏少军教授和紫光集团董事长赵伟国先生,讨...

    AI科技大本营
  • LeetCode-6 Z字形变换

    今天我们学习第6题Z字形变换,这是一个字符串的中等题,像这样字符串的题目经常作为面试题来考察面试者算法能力和写代码能力,因此最好能手写出该题。下面我们看...

    用户3470542

扫码关注云+社区

领取腾讯云代金券