[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: