У меня есть Makefile со следующим:
AVAR=""
all :
if [ -d ../old ]; then \
(echo "$@ Ping!"; AVAR="../old"; echo $(AVAR)) \
fi
@echo $(AVAR)
Идея состоит в том, что в зависимости от наличия каталога "../old" у меня будет или не будет информации в AVAR (доступно для использования позже)Однако if оценивает значение true, а Ping!повторяется, но AVAR ничего не назначается ни внутри, ни вне оператора if.
Вывод выглядит следующим образом:
$ make all
if [ -d ../old ]; then \
(echo "all Ping!"; AVAR="../old"; echo "") \
fi
all Ping!
Любое понимание приветствуется.