Erreur operteur uninaire attendu
Résolu
                    
        
     
             
                    chrisee
    
        
    
                    Messages postés
            
                
     
             
            212
        
            
                                    Statut
            Membre
                    
                -
                                     
chrisee Messages postés 212 Statut Membre -
        chrisee Messages postés 212 Statut Membre -
        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 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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
            
                
     
             
            212
        
            
                                    Statut
            Membre
                    
    
            
                
     
             
                        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
