Shell  变量用双引号引起来,双引号就是表示这个双引号内为一个字符串。

对于 if 条件语句里所有的字符串的比较时,最好是在变量的外面加上双引号。特别是 if -n 判断字符串是否为null时候(null意思就是字符串长度为0),一定要加上双引号。否则,像下面的case就会出错。

a=""

if [ -n $a ] 等价于 if[ -n ]

对于字符串长度为0时,相当于没有参数,这句总返回为真。明明a的为空串,长度为空,但是却判断出来为非空字符串。

改为if [ -n "$a" ]就没有此问题,可以判断出来为此为空字符串。

对于字符串的变量,一个比较特殊的情况,就是数组变量。这个时候变量外面不能用双引号,否则的话,shell会把双引号里的内容当作一个字符串,而不会去以空格分割里面的内容。

arr="12 3 4 5"

for i in $arr  ---当数组用,所以不能加双引号

do

echo $i

done

结果:

1

2

3

4

5

arr="12 3 4 5"

for i in "$arr" --加了双引号,就会将$arr的内容作为一个字符串一起输出

do

echo $i

done

结果:

1 2 3 4 5

所以,一般最好是加上双引号, 但是对于数组类型变量,不加双引号。

Shell 变量用双引号相关推荐

  1. bash 变量加双引号与不加双引号效果大不相同!

    bash 变量加双引号与不加双引号效果大不相同! 做一个实验: temp_var=$(route -n) temp_var 变量加""是这样的, 可认为是原样输出 hjj@hjj- ...

  2. shell中定义变量用双引号和单引号以及不用引号的区别

    1. 单引号 使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出 2. 双引号 如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双 ...

  3. shell变量加单引号sql_关于shell:在Bash中的命令中扩展变量的单引号

    我想从bash shell脚本中运行一个命令,该脚本在单引号和变量中包含单引号和一些其他命令. 如repo forall -c '....$variable'. 在这种格式中,对$进行转义,不展开变量 ...

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

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

  5. Shell脚本中 双引号(“”)单引号(‘’)反引号(``)的区别

    1.由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释. 2.由双引号括起来的字符,除$(美元符号).\(反斜杠).'(单引号).和" ...

  6. python键盘怎么输入双引号_如何在Python中使用字符串变量打印双引号?

    打印双引号很棘手,因为语法本身要求将双引号括起来以打印字符串.在本文中,我们将看到如何使用print语句打印这些双引号. 下面的情况将不会打印双引号.代码的前两行将不提供任何输出,而最后一行将通过错误 ...

  7. Linux Shell 单引号 双引号 使用区别

    From:https://blog.csdn.net/lifu119/article/details/7868231 在bash脚本中,有三种引号 1. 单引号 ' 2. 双引号 " 3. ...

  8. Java-输出字符型变量时与双引号拼接问题

    public class Demo {public static void main(String[] args) {/*** 字符型变量初始值是字符* * 结论:* * 当输出语句中没有拼接&quo ...

  9. js里给变量拼接双引号

    先来看一下最终效果: 但是p标签是要用js生成的.data_attr自定义属性值是一个变量. var data='qq289483936';var p='<p data_attr='+data+ ...

最新文章

  1. ABAP术语-Object Name
  2. netty 文件传输服务器,Netty之二进制文件传输
  3. iftop 监控linux服务器网卡流量
  4. layui 如何去dom_layui 的基本使用介绍
  5. 线程的基本协作和生产者消费者
  6. 实时的毛发绘制 szlongman
  7. linux内核Device Drivers设备驱动程序
  8. CSDN客服联系方式
  9. hzk16 8 16c语言示例,[资料共享]汉字库HZK16的使用,强烈推荐: 486959c6.rar
  10. HTML和CSS仿唯品会首页,ecshop仿唯品会2014全模板带团购品牌特卖
  11. 国密算法SM3与SM4简介与应用
  12. Lepus安装与配置
  13. Springboot 搭建oss文件上传服务器
  14. IC卡读卡器调用php,IC卡读卡器如何进行IC卡的读卡?
  15. 打印系统开发(55)——打印机监视器是什么,为什么安装不上?
  16. 【课程设计】僵尸大战植物 Zombies vs.Plants
  17. 光学仿真案例(1) 铌酸锂非线性波导仿真模拟 FDTD仿真
  18. 使用Unity开发RPG游戏完整指南
  19. 为什么要在项目中使用缓存呢?
  20. C++重学之路 5 控制语句和逻辑运算符

热门文章

  1. Latex输入罗马数字
  2. Elasticsearch(全文搜索引擎)
  3. 狂神docker笔记1
  4. 万字长文解析“数据中台”的硅谷实践(文末有福利!)
  5. JS实现倒计时(可多数据)
  6. 变压器重物推移机 在轨重物推移机 图片
  7. 汇编语言--8255并行接口实验
  8. Django模板继承和挖坑
  9. 计算机江苏省二级时间,江苏计算机二级考试时间(江苏计算机二级考试时间2020)...
  10. linux拷贝文件函数,如何使用Linux的splice()函数将文件复制到另一个文件?