Make

$(number) 在 Makefile 中是什麼意思?

  • February 24, 2020

我有一些腳本,但我不明白包含以下內容的行$(1)

wget --retry-connrefused --waitretry=5 --read-timeout=30 --tries=50 --no-dns-cache https://dataverse.harvard.edu/api/access/datafile/:persistentId?persistentId=doi:$(1) -O data/tmp.tar.gz

代表什麼$(1)

$(1)是 GNU make“函式”的第一個參數,它是由函式解釋的變數call

define dataverse_download
   wget --retry-connrefused --waitretry=5 --read-timeout=30 --tries=50 --no-dns-cache https://dataverse.harvard.edu/api/access/datafile/:persistentId?persistentId=doi:$(1) -O data/tmp.tar.gz
   cd data && tar -xzf tmp.tar.gz
   rm -f data/tmp.tar.gz
endef

download_wget:
   mkdir -p data
   $(call dataverse_download,10.7910/DVN/IA8UOS/URG8XN)
   $(call dataverse_download,10.7910/DVN/IA8UOS/1DBE7K)
   $(call dataverse_download,10.7910/DVN/IA8UOS/34QRHK)

這定義了一個函式 ,dataverse_download它下載與作為第一個參數給出的 DOI 匹配的數據文件;目標顯示瞭download_wget如何將其與$(call)函式一起使用。

引用自:https://unix.stackexchange.com/questions/569354