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: