Pergunta

Com um conteúdo makefile GNU de:

SVNVERSION_NUMBER := $(shell svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/')

$(error $(SVNVERSION_NUMBER))

Eu recebo um resultado de:

Makefile:3: *** svnversion, version 1.6.2 (r37639).  Stop.

No entanto, no shell se eu digitar:

svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/'

Eu recebo o resultado:

1.6.2

Claramente, a minha sintaxe shell não está fazendo o que eu acho que é, mas eu não estou claro sobre o porquê.

Graças.

Foi útil?

Solução

$ é especial em cordas fazer. $$ para um sinal de dólar literal no comando perl.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top