我有一些脚本我不明白其中包含的一行$(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
$(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)
功能。