[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Re: gestion des variables sous zsh



Pour une raison que j'ignore le * n'a pas pris effet.  De toute facon *
n'est jamais tres bon a utiliser dans un script sauf dans certains cas
simples.  Je vous propose la solution suivante :

/usr/bin/find '/etc/init.d/Sauvegardes/test ps/' \
 -name 'pascal*' \
 -exec /bin/cp {} '/etc/init.d/Sauvegardes/test/' \;

On donne alors la job d'interpretation du glob * a find.  Les problemes
de quoting ne sont plus puisque $1 (ou si vous preferez argv[1]) de cp
va etre le nom du fichier avec son path et ses espaces.  Vous n'aurez
donc pas a vous preocuper de la double interpretation du shell.

Bonne chance.


On Fri, 2003-08-15 at 20:37, Pascal Schneider wrote:
> Bonjour,
> 
> j'essaie de copier des fichiers d'un répertoire à un autre via batch zsh. Mon répertoire source contient un espace dans le nom
> 
> j'ai creer pour les besoins du test un repertoire 'test' et un repertoire 'test ps' et des fichiers pascal_1, pascal_2, etc...
> 
> si je fait au prompt
> 
> cp /etc/init.d/Sauvegardes/'test ps'/pascal* /etc/init.d/Sauvegardes/test
> 
> le résultat est bon et un ls test donne :
> 
> pascal_1  pascal_2  pascal_3  pascal_4  pascal_5
> 
> maintenant sous batch en mettant le chemins et fichiers en variable
> 
> #!/bin/sh
> 
> Fichier_1="/etc/init.d/Sauvegardes/'test ps'/pascal*"
> Fichier_2="/etc/init.d/Sauvegardes/test"
> 
> echo "Fichier 1 :$Fichier_1"
> echo "Fichier 2 :$Fichier_2"
> echo "cp $Fichier_1 $Fichier_2"
> cp "$Fichier_1" $Fichier_2
> 
> ### Fin du batch
> 
> en le lancant, voici le resultat
> 
> Fichier 1       :/etc/init.d/Sauvegardes/test ps/pascal*
> Fichier 2       :/etc/init.d/Sauvegardes/test
> cp /etc/init.d/Sauvegardes/test ps/pascal* /etc/init.d/Sauvegardes/test
> cp: Ne peut évaluer `/etc/init.d/Sauvegardes/test ps/pascal*' par stat(): Aucun fichier ou répertoire de ce type
> zsh: exit 1     ./test2.sh
> 
> quelqu'un aurait il une idée pour passer en variable des chemin et nom de fichiers comprenant des espaces???
> 
> merci pour vos réponses
> 
> Pascal
>