verify:
@command -v gpg 2>/dev/null || { echo "Cound not find gpg. Aborting."; exit 1; }
Я видел следующую команду в Makefile. Я понимаю, что он делает следующее:
verify вызывается до того, как build в файле Makfile @command используется, чтобы не отгонять выполняемую команду и не эхо выводить команду, которая будет invused -v gpg 2>/dev/null проверит версию и если gpg не будет найден, он перенаправит вывод ошибки (sterr) в null (нигде). || { echo "Cound not find gpg. Aborting."; exit 1; } будет эхо-сообщение и выйдет из текущего сценария с ошибкой 1, если предыдущая команда создает ошибку (возвращает false, поэтому именно здесь есть)То, что я не понимаю, - -v gpg. При проверке версии -v обычно появляется после команды. Есть ли причина для этого?
-v является аргументом для command, встроенным не для gpg, он не ищет версию «gpg», он ищет, существует ли какая-либо команда с именем «gpg».
] Из help command:
-v print a description of COMMAND similar to the `type' builtin
похоже на type builtin:
$ command -v gpg
/usr/bin/gpg
Если он не смог найти команды, он вернет ненулевой статус выхода, поэтому будет запущен раздел «OR»:
|| { ... }
, который выдает:
Cound not find gpg. Aborting.
с код статуса выхода «1».
-v является аргументом для command, встроенным не для gpg, он не ищет версию «gpg», он ищет, существует ли какая-либо команда с именем «gpg».
] Из help command:
-v print a description of COMMAND similar to the `type' builtin
похоже на type builtin:
$ command -v gpg
/usr/bin/gpg
Если он не смог найти команды, он вернет ненулевой статус выхода, поэтому будет запущен раздел «OR»:
|| { ... }
, который выдает:
Cound not find gpg. Aborting.
с код статуса выхода «1».
-v является аргументом для command, встроенным не для gpg, он не ищет версию «gpg», он ищет, существует ли какая-либо команда с именем «gpg».
] Из help command:
-v print a description of COMMAND similar to the `type' builtin
похоже на type builtin:
$ command -v gpg
/usr/bin/gpg
Если он не смог найти команды, он вернет ненулевой статус выхода, поэтому будет запущен раздел «OR»:
|| { ... }
, который выдает:
Cound not find gpg. Aborting.
с код статуса выхода «1».