Boucle while
hamadamoi
Messages postés
24
Statut
Membre
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
salut,
j'ai besoin d'aide pour faire un script en shell :
recherche adresse ip dans fichier qui contient une adresse ip
stocké adresse ip1=192.168.0.1
recherche adresse ip le meme fichier
tant que adresse ip=adresse ip1
recherche adresse ip dans le meme fichier
tant que adresse ip notequal adresse ip1
stocké adresse ip2=192.168.0.2
la recherche de l'adresse ip sera exécute 4 ou 5 fois
merci
j'ai besoin d'aide pour faire un script en shell :
recherche adresse ip dans fichier qui contient une adresse ip
stocké adresse ip1=192.168.0.1
recherche adresse ip le meme fichier
tant que adresse ip=adresse ip1
recherche adresse ip dans le meme fichier
tant que adresse ip notequal adresse ip1
stocké adresse ip2=192.168.0.2
la recherche de l'adresse ip sera exécute 4 ou 5 fois
merci
4 réponses
-
Salut.
je n'ai pas bien compris ton problème.
Donne nous :
-le format de ton fichier
-ce que tu attends en sorti de script.
Fait des phrase plutôt que ce pseudo algorithme peu clair; -
salut Char Snipeur
voila mon script
#!bin/bash
#importer la page de testmire avec (wget) et metre dans un fichier spped.txt
wget -S http://mire.ipadsl.net/speedtest.php -O /root/spped.txt 2>&1
#chercher l'adresse ip du test
adresse_ip1=$(grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /root/spped.txt)
#chercher le debit de l'adresse ip1
debit1=$(grep -o 'Votre Bande Passante [^"]*' /root/ahmed/spped.txt | awk '{print $4}' )
normalement j'ai 3 ligne adsl (alors 3 adresse ip)
maintenant je veux metre adresse ip1 et debit 1 dans un tableau
et refaire la recherche 5 ou 6 fois
stocké les adresse ip (ip2 et ip3) dans le meme tableau -
declare -a ip declare -a debit for ipc in $(grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /root/spped.txt) do : ip[${#ip[*]}]=$ipc debit[${#debit[*]}]=$(grep -o 'Votre Bande Passante [^"]*' /root/ahmed/spped.txt | awk '{print $4}' ) done
je n'ai pas testé, mais je ferai un truc comme ça.
http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/ar01s12.html
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur -
salut
ca marche pas mais je pense que le tableau ca va compliqué les choses
revenant à mon scripte en haut:
je vais etre un peux claire mnt:
chaque fois que j'execute ces commandes :
#importer la page de testmire avec (wget) et metre dans un fichier spped.txt
wget -S http://mire.ipadsl.net/speedtest.php -O /root/spped.txt 2>&1
#chercher l'adresse ip du test
ip1=$(grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /root/spped.txt)
ca donne une adresse ip (soit ip1 ou ip2 ou ip3)
mnt je veux metre les commandes dans une boucle
si ip = ip1
wget -S http://mire.ipadsl.net/speedtest.php -O /root/spped.txt 2>&1
ip=$(grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /root/spped.txt)
si non enregistre ip2
wget ...
ip=....
si ip = ip1 et ip = ip2
wget -S http://mire.ipadsl.net/speedtest.php -O /root/spped.txt 2>&1
ip=$(grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /root/spped.txt)
si non enregistre ip3
merci-
Salut,
Y'a un truc que je ne pige pas dans ton raisonnement ;-\
Quand tu dis :
chaque fois que j'execute ces commandes :
wget -S ...
ip1=$(grep ...
Tu fais ça pour déterminer l'adresse IP de ta connexion?
Tu ne la connais pas avant de lancer le script ?
En fait c'est quand tu disais "normalement j'ai 3 ligne adsl (alors 3 adresse ip) ". Les 3 lignes sont au même endroit ?
Parce que pour avoir son adresse IP externe un simplecurl ifconfig.me/ip
suffit ;-\
-