#!/bin/bash
echo "Number of hosts entered are "$#
echo "Hostnames are "[email protected]
for i in "[email protected]"
do
echo "Logging in to the host "$i
pbsh [email protected]$i '
ipaddr=`ip r | awk '{print $9}'`
if [ ipaddr = 172.*.*.* ]
then
echo "Script can not be run in this IP series"
exit
else
cd /var/tmp ; wget http://**********
fi'
done
Après l'exécution du script ci-dessus, l'erreur ci-dessous apparaît. Le script est en cours d'exécution mais pas de la manière souhaitée.Impossible d'imprimer en utilisant la commande awk dans le script shell
awk: cmd. ligne: 1: {print
awk: cmd. ligne: 1:^newline inattendu ou fin de chaîne
Je suis un débutant pour le script. Veuillez me corriger si quelque chose de mal dans le script.
Votre Le principal problème est le '' 'à la fin de' pbsh', qui est terminé par un autre '' 'dans' awk', donc vous voulez probablement échapper à ce dernier en faisant '\ ''. Une autre chose est votre instruction 'if', qui ne sera jamais vraie à moins que vous ne vérifiiez la variable' $ ipaddr' au lieu de la chaîne ** ipaddr **. – Rogus