Esto es similar a another issue, pero solo quiero que make
solicite un valor si estoy ejecutando un objetivo específico y no se ha especificado una variable obligatoria.¿Cómo se solicita la variable Makefile específica del destino si no está definida?
El código actual:
install-crontab: PASSWORD ?= "$(shell read -p "Password: "; echo "$$REPLY")"
install-crontab: $(SCRIPT_PATH)
@echo "@midnight \"$(SCRIPT_PATH)\" [...] \"$(PASSWORD)\""
Esto se traduce en la siguiente salida y ningún indicador:
Password: read: 1: arg count
@midnight [...] ""
El punto importante aquí es que tengo que pedir única cuando se ejecuta este objetivo, y solo si la variable no se ha definido. No puedo usar un script configure
, porque obviamente no debería almacenar contraseñas en un script de configuración, y porque este objetivo no es parte del procedimiento de instalación estándar.
A menos que los ojos de la mina me engañen, ese bucle while se repetirá en lugar de usar la 'N 'predeterminada si simplemente presiona Enter. – l0b0
Debería usar un [único signo igual en '['] (http://mywiki.wooledge.org/Bashism#Conditionals) – l0b0
También puede simplificar la instrucción 'if':' if [$$ CONTINUE! = "Y "] && [$$ CONTINUAR! =" S "]; entonces'. O incluso '[$$ CONTINUE =" y "] || [$$ CONTINUE = "Y"] || (echo "Saliendo"; salida 1;) ' – l0b0