最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

makefile中的shell變量語法及用法總結(jié)

 更新時(shí)間:2026年02月11日 09:33:55   作者:serve the people  
在 Makefile 中,變量的使用規(guī)則確實(shí)容易讓人混淆,下面我來總結(jié)一下常見的幾種用法及其含義,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

在 Makefile 中,變量的使用規(guī)則確實(shí)容易讓人混淆,下面我來總結(jié)一下常見的幾種用法及其含義:

1.$(var)或${var}

  • 用途:引用 Makefile 中定義的變量。
  • 示例
PORT = 8000
start:
    echo "Port is $(PORT)"
  • 說明
    • $(PORT) 是 Makefile 的標(biāo)準(zhǔn)語法,用于獲取變量 PORT 的值。
    • ${PORT} 功能相同,只是另一種寫法。

2.$$var

  • 用途:在 shell 命令中引用 shell 變量(避免與 Makefile 變量沖突)。
  • 示例
start-by-uvicorn:
    @PORT_VAL=$${port:-9608}; \
    echo "Using port: $$PORT_VAL"
  • 說明
    • $${port:-9608} 是 shell 的語法,表示如果 port 未定義,則使用默認(rèn)值 9608。
    • $$PORT_VAL 是為了告訴 Makefile:“這不是 Makefile 變量,而是 shell 變量”,防止 Makefile 嘗試解析它。

3.@符號

  • 用途:抑制命令本身的回顯(即不讓命令本身顯示在終端中)。
  • 示例
start:
    @echo "Starting application..."
  • 說明
    • 默認(rèn)情況下,Makefile 會先打印執(zhí)行的命令,再執(zhí)行命令。
    • 加上 [@](file:///Users/liujiaqi/Desktop/code/cedongli/waf/python/waf-collect-feature/src/utils/logger.py#L0-L67) 后,只會執(zhí)行命令,不會打印命令本身。

4.組合使用示例

PORT = 8000
start-by-uvicorn:
    @PORT_VAL=$${port:-$(PORT)}; \
    echo "Using port: $$PORT_VAL"
  • 解釋
    • $(PORT):引用 Makefile 中定義的 PORT 變量(值為 8000)。
    • $${port:-$(PORT)}:shell 語法,若 [port](file:///Users/liujiaqi/Desktop/code/cedongli/waf/python/waf-collect-feature/src/config/settings.py#L60-L60) 未定義,則使用 $(PORT) 的值。
    • $$PORT_VAL:引用 shell 變量 PORT_VAL,避免被 Makefile 解析。

總結(jié)對比表

語法類型用途
$(var)Makefile引用 Makefile 中定義的變量
$${var}ShellShell 中引用變量并支持默認(rèn)值
$$varShellShell 中引用變量(避免與 Makefile 沖突)
@commandMakefile抑制命令回顯

實(shí)際場景建議

  • 如果你在 Makefile 規(guī)則內(nèi)部 需要引用 Makefile 變量,使用 $(var)。
  • 如果你需要在 shell 命令中操作變量,使用 $$var$${var}。
  • 如果你不希望命令本身顯示在終端中,加上 [@](file:///Users/liujiaqi/Desktop/code/cedongli/waf/python/waf-collect-feature/src/utils/logger.py#L0-L67)。

到此這篇關(guān)于makefile中的shell變量語法總結(jié)的文章就介紹到這了,更多相關(guān)makefile shell變量語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一個(gè)簡單的防CC攻擊Shell腳本分享

    一個(gè)簡單的防CC攻擊Shell腳本分享

    這篇文章主要介紹了一個(gè)簡單的防CC攻擊Shell腳本分享,主要原理是分析apache或者nginx的訪問日志,對大量訪問的IP加入iptables進(jìn)行禁止訪問,需要的朋友可以參考下
    2014-06-06
  • 強(qiáng)制刪除rpm包的方法

    強(qiáng)制刪除rpm包的方法

    本文給大家介紹強(qiáng)制刪除rpm包,對rpm包刪除方法感興趣的朋友可以一起學(xué)習(xí)
    2015-11-11
  • Linux?中?tar?命令詳解

    Linux?中?tar?命令詳解

    這篇文章主要,給大家?guī)淼氖?Linux?命令系列,要介紹的是一個(gè)常用且強(qiáng)大的命令:tar,文中代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Ubuntu查看磁盤空間的命令詳解

    Ubuntu查看磁盤空間的命令詳解

    這篇文章主要介紹了Linux系統(tǒng)中用于磁盤空間分析和塊設(shè)備管理的工具,包括df、du、lsblk和ncdu,并提供了每個(gè)工具的常用命令、輸出示例和簡要說明,需要的朋友可以參考下
    2025-05-05
  • mysql源碼安裝腳本分享

    mysql源碼安裝腳本分享

    這篇文章主要介紹了mysql源碼安裝的腳本,配置文件的內(nèi)容是針對mysql5.6的,需要的朋友可以參考下
    2014-03-03
  • shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實(shí)例

    shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實(shí)例

    今天小編就為大家分享一篇shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 常用Linux Shell進(jìn)階部分小結(jié)

    常用Linux Shell進(jìn)階部分小結(jié)

    這篇文章主要介紹了常用Linux Shell進(jìn)階部分小結(jié),歡迎收藏,隨看隨記,需要的朋友可以參考下
    2015-07-07
  • 關(guān)于SSH 遠(yuǎn)程執(zhí)行命令你要知道的二三事

    關(guān)于SSH 遠(yuǎn)程執(zhí)行命令你要知道的二三事

    SSH 是 Linux 下進(jìn)行遠(yuǎn)程連接的基本工具,但是如果僅僅用它來登錄那可是太浪費(fèi)啦!SSH 命令可是完成遠(yuǎn)程操作的神器啊,下面這篇文章主要給大家介紹了關(guān)于SSH 遠(yuǎn)程執(zhí)行命令的一些相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • Shell常見知識 方便想學(xué)習(xí)linux shell的彭玉

    Shell常見知識 方便想學(xué)習(xí)linux shell的彭玉

    本文給大家介紹了一些Shell小知識,供參考學(xué)習(xí)
    2013-01-01
  • Linux文件名修改方法大全

    Linux文件名修改方法大全

    在Linux系統(tǒng)中,文件名修改是一個(gè)常見且重要的操作,文件名修改可以更好地管理文件和文件夾,使其更具可讀性和有序性,本文將介紹三種在Linux系統(tǒng)下常用的文件名修改方法,需要的朋友可以參考下
    2025-03-03

最新評論

宁陵县| 黄陵县| 浦县| 互助| 潮安县| 平阳县| 开化县| 宁都县| 武山县| 罗定市| 靖远县| 独山县| 汉中市| 湘潭市| 盘锦市| 比如县| 沙洋县| 三门峡市| 利津县| 南昌县| 合作市| 大洼县| 南部县| 大庆市| 红原县| 保定市| 汕头市| 太康县| 永清县| 樟树市| 麟游县| 明水县| 宁国市| 电白县| 广元市| 明光市| 岳阳市| 高要市| 广东省| 永登县| 元朗区|