zoukankan      html  css  js  c++  java
  • Shell的两个知识点引发的思考:关于"="的使用

    #!/bin/bash
    
    name="Enming"
    
    if [ $name = "Enming" ]
    then
       echo "Hello $name !"
    fi
    

    在学习Shell关于“条件测试”的知识时提到,“等于”是用一个等号( = )来表示的(用两个等号来表示“等于”的判断也是可以的),用于比较两个字符串是否相等,但是纳闷的是,赋值也是用“=”,这样不是冲突了吗?

    直到发现了这个知识点:

    --已定义的变量,可以被重新定义
    your_name="tom"
    echo $your_name
    your_name="alibaba"
    echo $your_name
    # 注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)
    

    可以发现,“=”用做赋值功能时,前面是一个不带美元符($)的变量名,如:your_name="tom";
    用做比较功能时,前面跟的就不能是一个不带美元符($)的变量名了,可能是一个被定义过的已知变量,如$name = "Enming",也可能是一个带双引号的常量。

    再提一点,提到的第二次赋值的时候不能写$your_name="alibaba",可以理解为第二次赋值时,重新定义了一个名字一样的变量,把之前的变量名及内容完全覆盖了,是一个崭新的变量。

  • 相关阅读:
    VS2019 技巧
    html5-Canvas
    JS动画三剑客——setTimeout、setInterval、requestAnimationFrame
    C# 从1到Core--委托与事件
    ILSpy工具使用
    .NET 表达式计算:Expression Evaluator
    jQuery.globalEval()方法
    jquery的eval的使用
    js中的eval方法
    设计模式速查手册
  • 原文地址:https://www.cnblogs.com/yd-yfb/p/15154588.html
Copyright © 2011-2022 走看看