这与另一个问题类似,但我希望只有当运行了特定的目标且未指定强制变量时,make
才提示输入值。
当前的代码:
install-crontab: PASSWORD ?= "$(shell read -p "Password: "; echo "$$REPLY")"
install-crontab: $(SCRIPT_PATH)
@echo "@midnight \"$(SCRIPT_PATH)\" [...] \"$(PASSWORD)\""
这只会输出以下内容,没有提示:
Password: read: 1: arg count
@midnight [...] ""
这里的重要点是我只需要在运行此目标时询问,并且仅当变量未定义时才需要。不能使用configure
脚本,因为显然不应将密码存储在配置脚本中,并且此目标不是标准安装过程的一部分。
N
,如果你只是按下回车键。 - l0b0=
。参考链接:http://mywiki.wooledge.org/Bashism#Conditionals - l0b0if
语句:if [ $$CONTINUE != "y" ] && [ $$CONTINUE != "Y" ]; then
。或者使用[ $$CONTINUE = "y" ] || [ $$CONTINUE = "Y" ] || (echo "退出中."; exit 1;)
更简洁。 - l0b0