Makefile $ (comando) não está funcionando, mas `command` fez

A coisa é quando eu estava escrevendo um Makefile para o meu projeto, quando eu precisava detectar o nome da ramificação atual, em uma regra make eu fiz isso:

check_branch:
    if [ "$(git rev-parse --abbrev-ref HEAD)" == "master" ]; then \
    echo "In master"
    else \
    echo "Not in master"; \
    fi

Quando liguei para fazer check_branch, o"$ (git rev-parse --abbrev-ref HEAD)" não funcionou, ele retornou "" string vazia. Mas ao invés disso quando eu mudei$ () para``funcionou perfeitamente.

check_branch:
    if [ "`git rev-parse --abbrev-ref HEAD`" == "master" ]; then \
    echo "In master"
    else \
    echo "Not in master"; \
    fi

Por que $ () não está funcionando, mas `` fez? Apenas para o comando "git".

Note que no meu Makefile eu usei$ () normalmente em muitas regras.

Obrigado :)

questionAnswers(2)

yourAnswerToTheQuestion