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

Re: [HS] - script de relève d'information



Le mercredi 20 novembre 2013 09:17:42 Nahliel Steinberg a écrit 
:
> Bonjour,

’jour,

>[…]
> rm -Rf version

`version` est un fichier, le -R n’a aucun intérêt.

> cat iptotalok | while read ip host;

UUOC¹ : `while … done < iptotalok`

¹ utilisation inutile de cat

>         do
>         echo $ip | ssh -A -n  root@$ip "cat /etc/issue" >>
> version 2>&1 ;

  Les options -A et -n de ssh n’ont pas d’intérêt ici.

  Le tube envoie la sortie en entrée de la commande qui suit. 
Comme ssh a déjà une commande en paramètre, c’est elle qui est 
exécutée donc l’IP envoyée ne gêne pas.
  Ce que tu veux, c’est concaténer la sortie de deux commandes, 
pas envoyer la sortie de la première en entrée de la seconde. Il 
suffit donc simplement d’exécuter les commandes l’une après 
l’autre.

  Et pour qu’`echo` n’envoie pas de fin de ligne (et donc que la 
suite soit sur la même ligne), utilise son option `-n`.

  echo -n $ip >> version
  ssh … >> version


  Dans des cas plus complexes, p.ex. pour envoyer la sortie de 
plusieurs commandes en entrée d’une autre, on peut grouper les 
commandes, soit dans une fonction :

  bla() {
    cmd-1
    cmd-2
  }
  bla | cmd-3

soit dans un sous-shell :

  (cmd-1 && cmd-2) | cmd-3 

soit plus simplement dans une liste :

  { cmd-1; cmd-2; } | cmd-3

>         done
> exit

  Le exit ne sert pas à grand-chose si tu ne changes pas le code 
de retour (`help exit`).

> Il ne m'affiche pas l'ip à coté de la version
> 
> Pouvez-vous m'aider ?

  Lis la page de man de dash en entier (courte et complète). Si 
tu n’es pas à l’aise avec l’anglais, lis celle de bash, même si 
elle est plus complexe, elle existe en français.
  Lis toujours les pages de man des programmes (et `help` pour 
les commandes du shel) que tu utilises pour vérifier leurs 
options.
  Et, surtout avant de les mettre dans une boucle, essaie tes 
commandes.

-- 
 Sylvain Sauvage


Reply to: