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",可以理解为第二次赋值时,重新定义了一个名字一样的变量,把之前的变量名及内容完全覆盖了,是一个崭新的变量。

  • 相关阅读:
    js 实现加入收藏/加入首页功能
    js 获取网页宽/高度
    js 飞机大战
    js 实现分享功能
    前端开发的工具,库和资源总结
    网站更新后客户端缓存问题
    js 实现图片无限横向滚动效果
    js 实现 文字打印效果
    js 构造函数创建钟表
    Css3 实现关键帧动画
  • 原文地址:https://www.cnblogs.com/yd-yfb/p/15154588.html
Copyright © 2011-2022 走看看