У меня есть этот код в файле make, и я не мог получить его

CHECK=dpkg -L $1 2>&1 >$(NULL) || $(APT) install -y $1
install.dpkg.%:
    $(call CHECK,$*)

я хочу знать

  1. Я прочитал, что $* означает все зависимости. здесь это означает, что написано в %

  2. в dpkg -L какая польза от этого, для меня это выглядит как выход будет нулевым

1 ответ1

1

Q1: Я не уверен на 100% в $ *, так как вариантов очень много. Я обычно использую $ @ для выбора целей, но, возможно, $ * более правильно.

Q2: Я могу сказать о вашем вопросе 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

должно быть выполнено.

Итак, я считаю, что это означает, что если программа не установлена, установите ее!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .