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