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 :)

Respuestas a la pregunta(2)

Su respuesta a la pregunta