J'écris un petit script pour des gens qui veulent compiler un noyau sans trop se pencher sur le pb (je sais mais tant pis pour eux)
pour lancer les differents "make", je passe par une fonction qui contient (sans backquotes) :
make $1 $AFFICHE
si je remplace les variables par du dur pour donner une idée, un echo sur cette ligne donne, par exemple :
make dep >/dev/null 2>compil_du_lun_26_jui_16_08
Cette commande execute le make dep correctement en m'affichant tout à l'écran :(
et finit par :
make: *** Pas de règle pour fabriquer la cible `>/dev/null'. Arrêt.
Quelqu'un peut-il m'expliquer SVP ?
Précision : je teste la même commande à la ligne de commande et tout va bien :
Un écran propre pendant l'exectution du "make dep" et les warnings dans le fichier compil_du_lun_26_jui_16_08...
Plus marrant (hum... ) :
les lignes (avec backquotes) :
echo "Début de make $1 $AFFICHE"
`make $1 $AFFICHE`
donnent :
Début de make dep >/dev/null 2>compil_du_lun_26_jui_16_21
md5sum: AVERTISSEMENT: 1 des 13 sommes de contrôle checksums ne concordent pas.
make: *** Pas de règle pour fabriquer la cible `>/dev/null'. Arrêt.
./compilation: line 62: make[1]:: command not found
Pas d'affichage en dehors des warnings (donc interpretation du ">/dev/null" je suppose ), et pourtant, toujours tentative de faire un "make >/dev/null" et plantage...
Je comprends plus...
Oscourt...
# shell
Posté par gc (site web personnel) . Évalué à 3.
en clair, le shell va construire la commande make avec le contenu de tes variables, mais ne cherchera pas à interpréter leur contenu comme pouvant contenir des caractères spéciaux. c'est comme si on passait de :
[gc@meuh /tmp] echo citron > /dev/null
à :
[gc@meuh /tmp] echo citron '>' '/dev/null'
citron > /dev/null
pour faire ce que tu souhaites, tu es obligé de faire une commande sans redirection et une commande avec redirection dans ton script, que tu brancheras selon le contenu d'une autre variable par exemple.
[^] # Re: shell
Posté par bugjargal . Évalué à 1.
C'est pas facile la vie... ;)
[^] # Re: shell
Posté par tgl . Évalué à 5.
[^] # Re: shell
Posté par bugjargal . Évalué à 1.
Merci, je m'en servirais la prochaine fois...
Je vais pas effacer les 15 if...elif que je viens de taper... ;)
# Moi aussi j'ai un script sur ma machine
Posté par Jean-Yves LENHOF (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.