Bonjour,

Je cherche à exécuter l'affectation de la variable PERL_TAG dans un Makefile, mais ça marche pas, je pense que c'est du au sous-shell successif et à la manière dont sont interpréter les variables dans la commande.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
SHELL:=/bin/bash
export
 
.SHELLFLAGS += -e
 
PERL_TAG?=$(echo $(echo $(echo "{"; i=1; for version in $(curl -s https://raw.githubusercontent.com/Perl/docker-perl/master/config.yml | grep ' version: ' | cut -d ':' -f 2 | tr -d ' '); do echo "\"version${i}\": \"${version}\",";((i=i+1)); done ; echo "\"version0\": \"0\""; echo "}") | jq -r '.| to_entries | max_by(.value) | .value')-slim)
 
ifndef DEBUG
.SILENT:
endif
 
.PHONY: *
Dans un shell, le code suivant donne bien la réponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo $(echo $(echo "{"; i=1; for version in $(curl -s https://raw.githubusercontent.com/Perl/docker-perl/master/config.yml | grep ' version: ' | cut -d ':' -f 2 | tr -d ' '); do echo "\"version${i}\": \"${version}\",";((i=i+1)); done ; echo "\"version0\": \"0\""; echo "}") | jq -r '.| to_entries | max_by(.value) | .value')-slim

ps: Je veux bien un rappel sur l'utilisation des variables et leur affectation dans un Makefile.

Merci d'avance