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

Re: Bash : quelques petites questions...



bonjour,

et avec une syntaxe de ce style ?
ssh serveur 'for i in `ls /tmp/`;do echo $i;done'

les ' permettent de banaliser les caractères i.e. empêcher le shell courant d'interpreter
les caractères spéciaux et notamment `et $
les ` permettent d'exécuter la commande ls /tmp et de renvoyer son résultat au for.

Bruno


Le 4 mai 2012 16:40, David BERCOT <debian@bercot.org> a écrit :
Le Fri, 4 May 2012 14:20:13 +0200,
"JF Straeten" <jfstraeten@scarlet.be> a écrit :
>Re,
>On Fri, May 04, 2012 at 02:14:08PM +0200, David BERCOT wrote:
>[...]
>> ssh mon_serveur_esx "for monfile in ls
>> \"/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
>> d'installation De\"/*.vmdk ; do echo \"\${monfile}\" ; done"
>
>> Premier souci : la commande ls apparaît dans le résultat ! Je ne
>> comprends pas bien pourquoi...
>
>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).
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 !

Exemple :

ssh mon_serveur_esx "for monfile in
\"/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De\"/*.vmdk ; do echo \"\${monfile}\" ; done"

/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/s47z038 - Test d'installation
De-flat.vmdk
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/s47z038 - Test d'installation De.vmdk

ssh mon_serveur_esx "for monfile in \$(ls
\"/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De\"/*.vmdk) ; do echo \"\${monfile}\" ; done"

/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038
-
Test
d'installation
De/s47z038
-
Test
d'installation
De-flat.vmdk
[...]

>> Ensuite, je souhaiterais supprimer certaines lignes en ajoutant un
>> grep :
>> ssh esx-supp-02.cnin.insee.fr "for monfile in ls
>> \"/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
>> d'installation De\"/*.vmdk | grep -v 00000 ; do echo
>> \"\${monfile}\" ; done"
>> Là, il me répond : ash: syntax error: "|" unexpected
>> Je suppose que les deux commandes devraient être un peu isolées mais
>> je ne vois pas comment...
>
>En corrigeant ci-dessus, ça devrait améliorer le grep aussi, non ?
>
>C'est mieux ?

Comme je n'ai pas encore tout corrigé ;-)

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: [🔎] 20120504164001.651ffab5@debian-david" target="_blank">http://lists.debian.org/[🔎] 20120504164001.651ffab5@debian-david







Reply to: