zoukankan      html  css  js  c++  java
  • shell中定义变量用双引号和单引号以及不用引号的区别

    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.执行命令赋值最好用$()或者``

  • 相关阅读:
    WPF 自定义NotifyPropertyChanged
    深度学习(五)正则化之L1和L2
    深度学习(三) 反向传播直观理解
    javascript中的原型和原型链(二)
    javascript中的原型和原型链(一)
    javascript中创建对象的方式及优缺点(二)
    javascript中创建对象的方式及优缺点(一)
    JS实现深拷贝的几种方法
    json.stringify()的妙用,json.stringify()与json.parse()的区别
    Javascript你必须要知道的知识点
  • 原文地址:https://www.cnblogs.com/lonecloud/p/9066199.html
Copyright © 2011-2022 走看看