最容易混淆的是 =和:=, 我們先來看看makefile:
x = hello
y = $(x)
x = world
test1: test1.cpp
@echo $(y)
執行make後, 結果爲world, 再看改動後的makefile:
x = hello
y := $(x)
x = world
test1: test1.cpp
@echo $(y)
執行make後, 結果爲hello, 爲什麼有區別呢?
因爲=其實類似於C++中的引用, 相當於y和x綁定了, 所以在echo的時候, 值爲world
而:=其實類似於C++中的賦值, 所以在echo的時候, 值爲hello. 在makefile中, 強烈建議使用:=進行復制。
y?=x是什麼呢? 其實很好理解, 它的意思是: 如果y沒有賦值過, 那就賦值。 如果賦值過, 那本次就不賦值了。
y+=x是什麼呢? 很好理解, 其實就是C++中的+=, 相當於累加。
這些東西本來很簡單, 但我發現, 有很多地方沒講清楚, 所以來嘮叨一下。
注:
1)echo命令:
echo命令用於在shell中打印shell變量的值,或者直接輸出指定的字符串。linux的echo命令,在shell編程中極爲常用, 在終端下打印變量value的時候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
語法:echo(選項)(參數)選項:-e:激活轉義字符。參數:變量:指定要打印的變量。
實例
用echo命令打印帶有色彩的文字:
文字色:
echo -e "\e[1;31mThis is red text\e[0m" This is red text
---------------------
作者:stpeace
來源:CSDN
原文:https://blog.csdn.net/stpeace/article/details/53056500
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!