zoukankan      html  css  js  c++  java
  • linux赋值操作符比较

    1. 递归展开变量(=):类似c中define,只是简单的替换;用=或define关键字都可以定义这种变量,如果变量的定义引用了其它的变量,那么引用会一直展开下去,直到找到被引用的变量的最新的定义,并以此作为改变量的值返回。
    eg:
    var = I love
    variable = linux
    var += $(variable)
    variable = magic
    echo $(var)
    -----> I love magic;
    2.简单扩展变量(:=):用这种方式定义的变量,会在变量的定义点,按照被引用的变量的当前值进行展开。
    m := mm
    x := $(m)
    y := $(x) bar
    x := later
    echo $(x) $(y)
    $x---> later
    $y---> mm bar(只管变量定义时的值,若将y:=...==> y=...,则会变成later bar)
    3.可以通过+=为已定义的变量添加新的值
    当变量从前没有被定义过, +=和=是一样的,它定义一个递归展开的变量;
    当变量已经有定义的时候,+=只是简单的进行字符的添加工作。
    如果起初你用:=定义变量,那么+=只是利用变量的当前值进行添加
    如果起初用=定义变量,+=的行为就变得有些古怪,它并不会在使用+=的地方马上进行变量展开,而是会把展开工作推后,直到它找到最后变量的定义,这和=定义变量的行为是类似的
    4.?= 赋默认值,如果没有初始化该变量,就给它赋上默认值。如:
    ARCH=arm
    ARCH ?= i386
    all:
    @echo $(ARCH)
    输出:
    arm

    ARCH=
    ARCH ?= i386
    all:
    @echo $(ARCH)
    输出:i386

  • 相关阅读:
    jsonp 监控简陋代码
    Oracle多线程并行使用、关联与指定索引执行
    Oracle计算时间差表达式
    行查列显
    JS时间
    通过string型类名实例化一个类
    sotower1.5-LS_工作流容易出错的地方
    oracle11g ORA-12505
    华项笔记本显示颜色变黄,调整好了重启还是偏黄
    ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
  • 原文地址:https://www.cnblogs.com/toven/p/2674048.html
Copyright © 2011-2022 走看看