我在 make 文件中有此代码但我无法获取它
CHECK=dpkg -L $1 2>&1 >$(NULL) || $(APT) install -y $1
install.dpkg.%:
$(call CHECK,$*)
我想知道
我已经读过这
$*
意味着所有依赖项。这里它是否意味着%
这有
dpkg -L
什么用呢,对我来说,出游似乎毫无意义
答案1
问题 1: 我对 $* 不是 100% 确定,因为有太多变体。我通常使用 $@ 来选择目标,但也许 $* 更正确。
问题2: 关于你的问题 2,我可以说这是标准的 bash。调用
cmda || cmdb
(这是一个或语句)也可以理解为
if cmda doesn't succeed, then try to call cmdb and see if that will succeed
这意味着当你打电话时
dpkg -L $1 2>&1 >$(NULL)
该结果将用于决定第二条命令
$(APT) install -y $1
应当执行。
所以,我相信这意味着,如果该程序未安装,请安装它!