1. 单引号

使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出

2. 双引号

如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双引号中的变量名以及命令原样子输出。

3. 不使用引号

用于一些简单字符数字的定义与双引号类似

使用规则 解释
单引号 所见即所得,即输出时会将单引号内的所有內容都原样输出,或者描述为单引号里面看到的是什么就会输出什么,这称为强引用
双引号 (默认) 输出双引号内的所有内容;如果内容中有命令(要反引下)、变量、特殊转义符等,会先把变量、命令、转义字符解析出结果,然后再输出最终内容,推荐使用,这称为弱引用
无引号 赋值时,如果变量内容中有空格,则会造成赋值不完整。而在输出内容时,会将含有空格的字符串视为一个整体来输出;如果内容中有命令(要反引下)、变量等,则会先把变量、命令解析出结果,然后输出最终内容;如果字符串中带有空格等特殊字符,则有可能无法完整地输出,因此需要双引号替代无引号的情况,特别是对变量赋值时改加双引号。一般连续的字符串、数字、路径等可以不加任何引号进行赋值和输输出,不过最好是用用
反引号 一般用于引用命令,执行的时候命令会被执行,相当于S0,赋值和输出都要用“将命令引起来

例如

a= demo
b='b- $a'
c="b- $a"
echo $a
echo $b
echo $c

  结果:

demo
b- $a
b- demo

  建议:

1、简单变量,简单赋值可以不用""

2.脚本中声明变量最好用""

3. 原样子输出用''

4.执行命令赋值最好用$()或者``

shell中定义变量用双引号和单引号以及不用引号的区别相关推荐

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

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

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

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

  3. Linux循环中累计数据,linux shell 读取for循环中出现难处理的数据之单引号错误实例...

    原语句: #!/bin/bash for test in I don't know if this'll work do echo "work:$test" done 结果: wo ...

  4. Shell 双引号和单引号的区别

    1.字符串变量定义的三种方式 Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量.示例如下: str1="testString" # ...

  5. 学习linux杂七杂八——关于shell中的变量

    var=value 变量定义并赋值,注意等号前后不能与空格相邻,如果需要有空格(其他特> 殊字符,如$,回车,",',\等)可用转义字符\进行转义. 变量命名规则同C语言. 变量值两端 ...

  6. Linux shell命令中双引号与单引号嵌套的问题

    addr="192.168.0.111" echo "'$addr'" 结果为 '192.168.0.111' echo '"$addr"' ...

  7. shell之定义变量

    变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell 中,每一个变量的值 ...

  8. 【Shell秒懂系列】引用及转义(单引号/双引号/反斜杠/反引号)

    Shell编程中主要以字符串实现数据传递,因此也赋予引号更多含义.为避免一些不必要的麻烦,你应当首先考虑使用双引号引用参数变量; 引号和转义是Shell中对字符串进行解析.扩展的主要手段. 引号释义 ...

  9. shell中的变量及运算符

     变量赋值与环境 语法 export name[=word] export –p readonly name[=word] readonly –p export用于修改或打印环境变量,readon ...

最新文章

  1. sizeof运算求结构体大小
  2. python利用集合的无重复性_python集合?
  3. 【数论】疯狂 LCM(P1891)
  4. 揭秘计算机之间互发数据的关键原理!
  5. 本地计算机策略未创建,未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序...
  6. 【Uva 1633】Dyslexic Gollum
  7. MindFusion教程:如何构建Java Swing中的区域图
  8. 开发简易飞机订票系统(C/C++)
  9. c语言 sendto函数,在sendto()函数中发送一个结构 - C语言
  10. 第十节 直流变直流电路(DCDC)芯片选型
  11. word脚注全部放在最后一页(脚注变尾注)
  12. 安卓刷机及刷机包制作教程
  13. python -简易密码生成器
  14. CentOS 8上安装Docker
  15. codevs 2867 天平系统3
  16. CSP-J1 CSP-S1 第1轮 初赛 考前强化训练
  17. 个人居间服务,劳务费用怎样合理节税?自然人代开3个点
  18. 三星s6经常信号无服务器,看看你中招了没?盘点三星S6 Edge六大常见问题
  19. (一)通用定时器的相关介绍
  20. mysql 绿色爪子_MySQL学习笔记--基本操作

热门文章

  1. @Repository、@Service、@Controller 和 @Component
  2. Silverlight实例教程 – Datagrid,Dataform数据验证和ValidationSummary
  3. maemo环境安装问题和解决方案(ubuntu 10.04)
  4. firefox是什么浏览器_我为什么不使用Firefox(火狐)浏览器
  5. 文件哈希审计工具md5deep/hashdeep
  6. OUYA游戏开发快速入门教程第1章了解OUYA及其设备
  7. Linux安全渗透教程——大学霸内部资料
  8. php 5.6 iis7,IIS7 配置 PHP5.6 Web程序 - 贪吃蛇学院-专业IT技术平台
  9. linux驱动内核,Linux内核设备驱动之Linux内核基础笔记整理
  10. 三角网导线平差实例_第讲(三角网条件平差.ppt