Erreur operteur uninaire attendu
Résolu
chrisee
Messages postés
181
Date d'inscription
Statut
Membre
Dernière intervention
-
chrisee Messages postés 181 Date d'inscription Statut Membre Dernière intervention -
chrisee Messages postés 181 Date d'inscription Statut Membre Dernière intervention -
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:
Et j'ai un message d'erreur me disant:
Et même message pour la ligne 7,d'où vient l'erreur,merci pour votre aide.
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.
A voir également:
- Erreur operteur uninaire attendu
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
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 "]".
Avec un seul "[" il faut seulement un signe "=".
De plus, il faut un espace de part et d'autre du caractère "[" ou "]".
chrisee
Messages postés
181
Date d'inscription
Statut
Membre
Dernière intervention
10
Merci beacoup,ca marche maintenant
"ttl" et pas "tll"
Sinon tu peux utiliser le ping une seule fois :
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
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