У меня есть Makefile так:Как получить статус выхода команды bash в make-файле?
k:
status=$(shell ./x.sh;echo $?)
ifeq ($(status),0)
echo success
else
echo failure
exit 1
endif
x.sh
простой скрипт, который печатает цифры от 1 до 10.
Так что, когда я выполняю макияж:
[email protected]:$make k
status=1 2 3 4 5 6 7 8 9 10
/bin/sh: 1: 2: not found
Makefile:2: recipe for target 'k' failed
make: *** [k] Error 127
Здесь я получаю выход вместо $?
. И когда я сравниваю в ifeq
status
значение равно null.
Как я могу получить эту работу? Также как я могу использовать директиву .ONESHELL? Могу ли я действительно выйти из make, если что-то пойдет не так, а вместо выполнения следующих инструкций с exit 1
?