我有以下makefile
:bash的测试,如果命令可以运行
SHELL += -eu
GREEN=$(shell echo -e "\033[0;32m")
RED=$(shell echo -e "\033[0;31m")
AWS=$(shell command aws --version 2> /dev/null)
all: prereqs
@echo "${GREEN} ✓ Testing our local environment for dependencies."
prereqs:
ifndef "${AWS}"
$(error "${RED} AWS is not available please install aws-cli")
endif
"${AWS}"
我如何改变它,这样如果有扶养缺少展现一个更合适的错误,并继续检查?
我想:
prereqs:
aws --version || $(error "${RED} AWS is not available please install aws-cli")
@echo
但它似乎并不奏效,我失去了什么为aws
存在!
任何意见是非常感谢。
这不是bash,它是'sh'。 Make除非被告知,否则不使用bash。纠正你的标签。 –
(也就是说,它带有一些不符合POSIX标准的扩展名“sh”,'echo -e'不允许除[print]标准输出://pubs.opengroup.org/onlinepubs/009695399/utilities/echo.html);特别参见APPLICATION USAGE部分,以显示如何使用'printf'%b \ n''代替)。 –
...对于一个恰当的例子(假设'/ bin/sh由bash在你的系统上以POSIX模式运行时提供),请看你的makefile在'export BASHOPTS = xpg_echo'后运行的方式如何运行* –