Cet ordre d'options et l'absence de = marche très bien quand tu tapes les options sans utiliser de variables. Le problème survient uniquement quand je cherche à passer plusieurs arguments --exclude dans une variable, avec guillemets et astérisques inclus. D'ailleurs la page de man ne documente pas de = et les exemples plus haut qui marchent (mon script du début ainsi que les réponses de NBaH et benja) ne l'utilisent pas non plus. Quant à ta syntaxe, j'ai essayé sur un exemple simple : (sans astérisque, puisque je m'intéresse ici uniquement à la syntaxe tar)
(Au lieu de faire le backup de /home à chaque fois, je choisis un sous-répertoire contenant peu de fichiers.)
#!/bin/bashliste_exclusion="~/Notes/Calendar"# OKeval tar cfz /tmp/backup.tar.gz ~/Notes --exclude "~/Notes/Calendar"eval tar cfz /tmp/backup.tar.gz ~/Notes --exclude "$liste_exclusion"# NOK, l'exclusion n'est pas faiteeval tar cfz /tmp/backup.tar.gz ~/Notes --exclude="~/Notes/Calendar"eval tar cfz /tmp/backup.tar.gz --exclude="~/Notes/Calendar" ~/Notes
eval tar cfz /tmp/backup.tar.gz --exclude="$liste_exclusion" ~/Notes
J'ai essayé avec et sans guillemets dans chacun des appels à eval, le résultat est le même.
[^] # Re: eval expr...
Posté par JGO . En réponse au message Quoter une variable contenant des arguments de ligne de commande. Évalué à 2.
Cet ordre d'options et l'absence de = marche très bien quand tu tapes les options sans utiliser de variables. Le problème survient uniquement quand je cherche à passer plusieurs arguments --exclude dans une variable, avec guillemets et astérisques inclus. D'ailleurs la page de man ne documente pas de = et les exemples plus haut qui marchent (mon script du début ainsi que les réponses de NBaH et benja) ne l'utilisent pas non plus. Quant à ta syntaxe, j'ai essayé sur un exemple simple : (sans astérisque, puisque je m'intéresse ici uniquement à la syntaxe tar)
(Au lieu de faire le backup de /home à chaque fois, je choisis un sous-répertoire contenant peu de fichiers.)
J'ai essayé avec et sans guillemets dans chacun des appels à eval, le résultat est le même.