# [SHELL] Accélérer le traitement des if then (resolu)

## dapsaille

Bonjour,

 Voila dans la série j'aime bash mais il ne me le rend pas ..

 je souhaiterais faire en sorte d'accélérer ce traitement qui fait environ 50 rsh à la suite afin de ne pas attendre le résultat en sortie avant d'en traiter un second .. (pas sur que ma phrase soit compréhensible .. le repas pèse lourd sur l'estomac la ^^)

```

for i in `cat liste_filers`;

do echo "

$i

" >> /tmp/snaps_stats/snaps_status && rsh $i df |grep .snapshot | awk '{print $5,$1}' | awk -F"%" '{print $1,$2}' | sort -nr | awk

'{ if ($1 > 100) print $1,$2}' >> /tmp/snaps_stats/snaps_status ;

done

more /tmp/snaps_stats/snaps_status

fi

```

 J'ai essayé comme tout débutant de rajouter un & à la fin de ma ligne avant le ; mais ca ne fonctionne pas il me sors un beau

```

snaps: line 12: syntax error near unexpected token `;'

snaps: line 12: `" >> /tmp/snaps_stats/snaps_status && rsh $i df |grep .snapshot | awk '{print $5,$1}' | awk -F"%" '{print $1,$2}'            | sort -nr | awk '{ if ($1 > 100) print $1,$2}' >> /tmp/snaps_stats/snaps_status & ;'

```

Any idea ?Last edited by dapsaille on Wed Feb 13, 2008 12:56 pm; edited 1 time in total

----------

## Temet

Hum, je me demande si le "&" ne s'applique pas à la partie du pipe et non pas à la commande entière.

Je serais toi, j'essayerais de lancer en tache de fond la première commande, avant tout pipe ... mais euh, je ne sais pas comment faire :/

----------

## xaviermiller

et 

```
(echo " blah" | encore | un | chaton | étouffé) &
```

 ?

----------

## dapsaille

 *XavierMiller wrote:*   

> et 
> 
> ```
> (echo " blah" | encore | un | chaton | étouffé) &
> ```
> ...

 

 Non malheureusement même sentance (y compris pour les chatons ^^)

----------

## Temet

http://www.unix.com/shell-programming-scripting/48276-bash-can-i-run-background-pipes.html

EDIT : en gros ça dit que la solution de Xavier est bonne...

Sinon t'as le workaround qu'à trouvé le mec au début.

EDIT 2 : bah le workaround que vient de balancer kwenspc en fait juste en dessous ^^

----------

## kwenspc

Et un:

```

function status

{

echo $1

" >> /tmp/snaps_stats/snaps_status && rsh $1 df |grep .snapshot | awk '{print $5,$1}' | awk -F"%" '{print $1,$2}' | sort -nr | awk

'{ if ($1 > 100) print $1,$2}' >> /tmp/snaps_stats/snaps_status ; 

}

for i in `cat liste_filers`;

do

    status $i &

done

more /tmp/snaps_stats/snaps_status 

```

 :Question: 

----------

## Magic Banana

 *dapsaille wrote:*   

> Bonjour,
> 
>  Voila dans la série j'aime bash mais il ne me le rend pas ..
> 
>  je souhaiterais faire en sorte d'accélérer ce traitement qui fait environ 50 rsh à la suite afin de ne pas attendre le résultat en sortie avant d'en traiter un second .. (pas sur que ma phrase soit compréhensible .. le repas pèse lourd sur l'estomac la ^^)
> ...

 

Je n'arrive pas à comprendre ce que viennent faire les ";" dans ton script... ni même le "fi" le terminant.

Sinon je plussoie pour les chatons. Et puis tant que l'on y est, plus personne n'utilise more (less fait plus  :Very Happy:  ).

----------

## kwenspc

 *Magic Banana wrote:*   

> 
> 
> Je n'arrive pas à comprendre ce que viennent faire les ";" dans ton script... ni même le "fi" le terminant.
> 
> Sinon je plussoie pour les chatons. Et puis tant que l'on y est, plus personne n'utilise more (less fait plus  ).

 

Sachant qu'il a passé une ligne après le statement for, le ';' est inutile. Mais pas pour autant non pertinent.

Pour le fi j'imagine qu'il nous a montré que le bout de code qui foire, d'où du garbage qui entre pas en ligne de compte.

----------

## Temet

Le "fi" termine surement un "if" entâmé au dessus (on ne le voit pas quoi, il quote comme un porc ^^).

Pour le point virgule, ouais... saserarien ^^

EDIT : grillé de quelques secondes...

----------

## dapsaille

 *kwenspc wrote:*   

> Et un:
> 
> ```
> 
> function status
> ...

 

Super :p

 Ceci dit en effet comme disat le permier type au début (il me rapelle quelqu'un) cela revient au même et devrait fonctionner sans fonction .... 

 Merci en tout cas ^^ j'ai gagné 3 minutes par exécution de script ^^ 

(même si du coup j'ai du créer un fichier output par requete plutot qu'un global ou rien n'aurait été trié)

EDIT = Bande de doux dingues .. même pas le temps de répondre que déja on as 3 améliorations de proposées :p

----------

## truc

et les chatons dans tout ça? les sauver peut aussi te faire gagner quelques précieuses ms  :Smile: 

----------

## dapsaille

 *truc wrote:*   

> et les chatons dans tout ça? les sauver peut aussi te faire gagner quelques précieuses ms 

 

Je sais je sais mais pour le moment besoin de fonctionnel ^^

 Je ferais le pompier sauveur de chats dans 1 mois ou 2 (ces scripts sont voués à une intégration plus "globale")

----------

## truc

 *dapsaille wrote:*   

> Je sais je sais mais pour le moment besoin de fonctionnel ^^

 

Mais on a déjà sauvé tous ces chatons dans ton autre thread du moment, pourquoi leur en vouloir à ce point? :p

----------

## dapsaille

 *truc wrote:*   

>  *dapsaille wrote:*   Je sais je sais mais pour le moment besoin de fonctionnel ^^ 
> 
> Mais on a déjà sauvé tous ces chatons dans ton autre thread du moment, pourquoi leur en vouloir à ce point? :p

 

Bah pour ne rien te cacher cela n'as pas fonctionné vraiment ^^ surement une bourde  de ma part :p

----------

## truc

 *dapsaille wrote:*   

> Bah pour ne rien te cacher cela n'as pas fonctionné vraiment ^^ surement une bourde  de ma part :p

 

Donc on se retrouve dans 1 mois ou 2 pour corriger tout ça  :Wink: 

----------

## dapsaille

J'espère surtout y arriver seul car a force ca fait un peu hotline shell ..   :Rolling Eyes: 

----------

## truc

ouais mais nous ça nous fait des pauses sympas :p

Tu nous donneras au moins ta solution j'éspère!

----------

## kwenspc

 *truc wrote:*   

> ouais mais nous ça nous fait des pauses sympas :p

 

On peut échanger nos bugs avec lui aussi ^^

@dapsaille: je te corrige tes shell tu me corriges mes problèmes avec Hibernate/J2EE ?

----------

