Re: Bash : quelques petites questions...
Re,
On Fri, May 04, 2012 at 04:40:01PM +0200, David BERCOT wrote:
> >Ne serait-ce pas plutôt :
> >for monfile in $(ls MesVdmk.*)
> >do
> >...
> >done
> >pour distribuer ta boucle sur *ce que renvoie* d'ls ?
> Alors, tout d'abord, le "ls" est effectivement superflu dans ma
> première écriture (c'est d'ailleurs pour ça qu'il est présent dans
> le résultat).
'tention... je croyais que le "ls" était simplifié dans l'exemple,
mais que tu utilisais en réalité des switches pour lister les fichiers
d'une manière particulière. (Genre ls -lth pour avoir une liste
longue, human readable et temporellement inversée.)
Si c'est juste un 'ls', alors oui, autant utiliser les jokers du shell
et ne pas lancer un sous-processus pour rien ;)
> Après, je suis d'accord sur l'écriture for monfile in $()..., sauf
> qu'il faut protéger le $. Mais bizarrement, il me renvoie les résultats
> découpés dès qu'il voit un blanc !
Mmmm... non, la construction avec $() (dollar + parenthèses) servait à
récupérer le résultat de la commande placée dedans. Pour protéger la
variable, il faut ${} (dollar + accolades). D'ailleurs, c'est ce que
tu fais ci-dessous :
> ssh mon_serveur_esx "for monfile in
> \"/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
> d'installation De\"/*.vmdk ; do echo \"\${monfile}\" ; done"
[...]
> -
> Test
> d'installation
> De/s47z038
> -
> Test
> d'installation
> De-flat.vmdk
> [...]
Il y a des espaces dans les noms de tes .vmdk ?
Tu saurais coller un ls -l du répertoire qui les contient, avec le
path absolu ?
Il y a un truc que je ne pige pas à mon avis...
A+
--
JFS.
Reply to: