Erreur operteur uninaire attendu [Résolu/Fermé]

Signaler
Messages postés
171
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
29 juillet 2017
-
Messages postés
171
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
29 juillet 2017
-
Bonsoir,
Je veux créer un script qui à partir d'un fichier text possedant des nom de post et adresses ip,fais des pings successive pour voir au finish un fichier texte dans lequel se trouve toutes les adresses IP online,voici mon script:
#!/bin/bash
touch my_ips_online.txt
for ip in $(cat /mes_scripts/adresses.txt |cut -d " " -f 2);do
  if [ $(ping -c 1 $ip |grep "tll"|cut -d " " -f 6) == "ttl"];then
   ping -c 1 $ip|grep "ttl"|cut -d ":" -f 1|cut -d " " -f 4 »my_ips_online.txt
  elif [ $(ping -c 1 $ip |grep "Unreachable"|cut -d " " -f 6) == "Unreachable"];then
   echo "Hote hors ligne"
 fi
done



Et j'ai un message d'erreur me disant:
./monfichier.sh: ligne 5 :[:==:Operateur uninaire attendu

Et même message pour la ligne 7,d'où vient l'erreur,merci pour votre aide.

3 réponses

Salut,

Avec un seul "[" il faut seulement un signe "=".
De plus, il faut un espace de part et d'autre du caractère "[" ou "]".
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
171
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
29 juillet 2017
10
Merci beacoup,ca marche maintenant
Messages postés
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
94
"ttl" et pas "tll"

Sinon tu peux utiliser le ping une seule fois :


#!/bin/bash
rm -f online
for ip in `cat a | cut -d\ -f2`
do
ping -c 1 $ip > /dev/null
if [ "$?" = "0" ];then
echo "$ip : connecté" >> online
else
echo "$ip : hors ligne"
fi
done
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
171
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
29 juillet 2017
10
J'ai finalement vu l'origine de l'erreur c'est la ligne 4 et 6 je devais ajouter un des crochets supplemenataires


#!/bin/bash
touch my_ips_online.txt
for ip in $(cat /mes_scripts/adresses.txt |cut -d " " -f 2);do
if [[ $(ping -c 1 $ip |grep "ttl"|cut -d " " -f 6) == "ttl"]];then
ping -c 1 $ip|grep "ttl"|cut -d ":" -f 1|cut -d " " -f 4 »my_ips_online.txt
elif [[ $(ping -c 1 $ip |grep "Unreachable"|cut -d " " -f 6) == "Unreachable"]];then
echo "Hote hors ligne"
fi
done