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

Re: Bash : quelques petites questions...



Le Fri, 4 May 2012 16:58:12 +0200,
"JF Straeten" <jfstraeten@scarlet.be> a écrit :
>> >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 ;)

C'est le cas ;-)

>> 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"

Certes, mais là, c'est différent, non ?
Tu me proposes de remplacer $() par ${} ?
Du genre :

ssh mon_serveur_esx "for monfile in
\${ls /vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a} ; do echo
$monfile ; done" ?
Mhum, même avec différentes syntaxes, j'obtiens juste :
ash: syntax error: Bad substitution

>[...] 
>
>> -
>> Test
>> d'installation
>> De/s47z038
>> -
>> Test
>> d'installation
>> De-flat.vmdk
>> [...]
>
>Il y a des espaces dans les noms de tes .vmdk ?

En effet :-(

>Tu saurais coller un ls -l du répertoire qui les contient, avec le
>path absolu ?

Euh oui, mais pourquoi ?

>Il y a un truc que je ne pige pas à mon avis...

C'est peut-être aussi moi qui explique mal ;-)

>@David : tu ne sais pas scripter le traitement des .vmdk, et appeler
>le script par ssh, pour voir ce que ça donne ?

Tu veux dire, faire un script sur le serveur et l'appeler ensuite
directement ? C'est ce que m'a suggérer Basile en mp ;-)
Je pourrais, mais vu que j'ai plein de serveurs à traiter, ça ne me
convient pas trop.

David.


Reply to: