Passa uma variável Make para o Bashscript que é invocado dentro do Make

0

Em uma regra padrão, eu gostaria de exportar make variable como $(TargetLocation) , $@ .

Eu tentei o seguinte, mas ele não foi exportado. O script bash é executável.

export $(TargetLocation); \
export $@; \
./EditHtml.sh;

Eu também tentei isso (usei ${VarA} em vez de ${TargetLocation} dentro do script bash), mas ele não foi exportado:

./EditHtml.sh VarA=$(TargetLocation); \

Eu gostaria de usar essas variáveis no script Bash. Alguma sugestão?

    
por Nikhil 14.09.2018 / 19:45

1 resposta

1

Você precisa exportar o nome da variável, não o valor.

Você pode exportar o nome de todos os subprocessos com a declaração GNU Make export

export TargetLocation

Se você quer o valor apenas para uma regra, então sua declaração deve ser sintaxe regular da shell

    export TargetLocation="$(TargetLocation)"; \
    ./EditHtml.sh

Nesse caso, dependendo do conteúdo da variável, aspas podem ser necessárias, e ainda assim seria vulnerável se houvesse valores arbitrários para a variável. Por outro lado, se o make for executado com os privilégios do usuário solicitante, não haverá perigo adicional.

    
por 14.09.2018 / 19:55