我有以下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'後運行的方式如何運行* –