Makefile $ (command) no funciona pero `command` hizo
El problema es que cuando estaba escribiendo un Makefile para mi proyecto, cuando necesitaba detectar el nombre de la rama actual, en una regla de creación hice esto:
check_branch:
if [ "$(git rev-parse --abbrev-ref HEAD)" == "master" ]; then \
echo "In master"
else \
echo "Not in master"; \
fi
Cuando llamé a make check_branch,"$ (git rev-parse --abbrev-ref HEAD)" no funcionó, devolvió "" una cadena vacía. Pero en cambio cuando me cambiéPS a``, funcionó perfectamente.
check_branch:
if [ "`git rev-parse --abbrev-ref HEAD`" == "master" ]; then \
echo "In master"
else \
echo "Not in master"; \
fi
¿Por qué $ () no funciona pero `` funcionó? Solo para el comando "git".
Tenga en cuenta que en mi Makefile, utilicéPS Normalmente en muchas reglas.
Gracias :)