#1 Le 22/03/2014, à 23:08
- franckyfoys
[Résolu] scripter les interfaces wifi existantes
bonjour,
voici mon script actuel:
#!/bin/bash
#
#
# liste des interfaces wifi
clear
set `ifconfig |grep wlan |awk -F " " '{ print $1 }'`
nbcarte=$#
if [ $nbcarte = 1 ];then
echo "$nbcarte carte wifi a ete trouvé:"
echo "carte $nbcarte: $1"
else
echo "$nbcarte cartes wifi ont ete trouvées:"
#Compteur:
cpt=0
while [ $cpt -le $nbcarte ]
do
cpt=$(($cpt+1))
echo interface$cpt: $($cpt)
done
fi
mon probleme se situe au niveau de la ligne echo interface$cpt: $($cpt)
je souhaiterais un resultat graphique du genre interface2: wlan2 mais j'obtient interface2: 2
pouvez vous m'aidez svp?
si c'est une erreur de syntaxe, cela m'arrangerais de comprendre mon erreur, si c'est ma methode de travail, je veux bien repartir de zero, ce n'est pas un soucis.
merci a vous
Dernière modification par franckyfoys (Le 23/03/2014, à 00:08)
Hors ligne
#2 Le 22/03/2014, à 23:13
- jplemoine
Re : [Résolu] scripter les interfaces wifi existantes
Je pense que
echo interface$cpt: $($cpt)
doit devenir
echo "interface$cpt: $1"
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#3 Le 22/03/2014, à 23:21
- franckyfoys
Re : [Résolu] scripter les interfaces wifi existantes
bonsoir jplemoine,
oui c'est effectivement le but, seulement je ne sait pas combien d'interfaces je possede donc je voulais que $1, $2, $... devienne $$cpt
le probleme c'est que $$ veut dire quelque chose (le PID du script je crois) donc ca me foire mon script
comment contourner cela ?
Hors ligne
#4 Le 22/03/2014, à 23:36
- jplemoine
Re : [Résolu] scripter les interfaces wifi existantes
exact. C'est pas bon. Je réfléchis et je t'envoie un truc mais je ne peux pas tester : j'ai qu'une interface...
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#5 Le 22/03/2014, à 23:39
- Yannou90
Re : [Résolu] scripter les interfaces wifi existantes
Bonsoir
Utilise un tableau :
interface=(wlan0 wlan1 ath0 eth1)
echo ${interface[0]}
wlan0
echo ${interface[1]}
wlan1
echo ${interface[2]}
ath0
echo ${interface[3]}
eth1
echo ${interface[@]}
wlan0 wlan1 ath0 eth1
Hors ligne
#6 Le 22/03/2014, à 23:40
- jplemoine
Re : [Résolu] scripter les interfaces wifi existantes
Peux-tu me donner le retour de
ifconfig |grep wlan |awk -F " " '{ print $1 }
Dans le cas où il a plusieurs interfaces.
Merci.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#7 Le 22/03/2014, à 23:59
- franckyfoys
Re : [Résolu] scripter les interfaces wifi existantes
voici ce que ca donne:
ifconfig |grep wlan |awk -F " " '{ print $1 }'
wlan1
wlan2
j'ai trouver une solution qui fonctionne en changant la methode et en utilisant un principe de tableau (a ma facon)
voici ce que ca donne:
set `ifconfig |grep wlan |awk -F " " '{ print $1 }'`
nbcarte=$#
iface=$*
if [ $nbcarte = 1 ];then
echo "$nbcarte carte wifi a ete trouvé:"
echo "carte $nbcarte: $1"
else
echo "$nbcarte cartes wifi ont ete trouvées:"
#Compteur:
cpt=0
while [ $cpt -lt $nbcarte ]
do
cpt=$(($cpt+1))
echo -n interface $cpt:
echo $iface|cut -d' ' -f$cpt
done
fi
voici le resultat a l'ecran
2 cartes wifi ont ete trouvées:
interface 1:wlan1
interface 2:wlan2
je vais essayer d'integrer ta syntaxe echo ${interface[0]}
merci de ton aide
Hors ligne
#8 Le 23/03/2014, à 00:06
- franckyfoys
Re : [Résolu] scripter les interfaces wifi existantes
bon voila je peux dire que c'est resolu, merci beaucoup :-)
voici ce que ca donne avec ta methode de tableau (que je vais garder d'ailleurs)
set `ifconfig |grep wlan |awk -F " " '{ print $1 }'`
nbcarte=$#
iface=($*)
if [ $nbcarte = 1 ];then
echo "$nbcarte carte wifi a ete trouvé:"
echo "carte $nbcarte: $1"
else
echo "$nbcarte cartes wifi ont ete trouvées:"
#Compteur:
cpt=0
while [ $cpt -lt $nbcarte ]
do
echo interface $cpt= ${iface[$cpt]}
cpt=$(($cpt+1))
done
fi
retour a l'ecran
2 cartes wifi ont ete trouvées:
interface 0= wlan1
interface 1= wlan2
merci encore
Hors ligne
#9 Le 23/03/2014, à 00:26
- Yannou90
Re : [Résolu] scripter les interfaces wifi existantes
Hors ligne
#10 Le 23/03/2014, à 00:32
- Watael
Re : [Résolu] scripter les interfaces wifi existantes
salut,
iface=( $(ifconfig | awk '/wlan/{ print $1 }') )
ou simplement
iface=( $(ifconfig | grep -o '^wlan[0-9]') )
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 23/03/2014, à 15:11
- pingouinux
Re : [Résolu] scripter les interfaces wifi existantes
Bonjour,
Et en gardant la structure de ton script en #1 :
#!/bin/bash
#
#
# liste des interfaces wifi
clear
set -- `/sbin/ifconfig | awk '/^wlan/{ print $1 }'`
echo "$# cartes wifi ont ete trouvées:"
#Compteur:
cpt=0
for carte in "$@"
do
echo interface$((++cpt)): $carte
done
Hors ligne
#12 Le 29/03/2014, à 10:16
- franckyfoys
Re : [Résolu] scripter les interfaces wifi existantes
merci pour ces deux derniere methodes, je vais orienter mes futurs scripts vers ce genre de syntaxe. bien plus concis ^^
Dernière modification par franckyfoys (Le 29/03/2014, à 10:17)
Hors ligne