#1 Le 26/07/2019, à 13:42
- Ellaina22
Recherche de l'aide concernant un script bash
Bonjour tout le monde
Je cherche certaines informations concernant un script bash.
J'utilise la commande lspi | grep -i net pour obtenir des informations concernant les composants du réseau.
Mon script est le suivant
Rm me permet de reset le fichier texte en le supprimant, il s'agit d'un fichier qui se crée / remplit chaque fois que je démarre le script (ou alors il va ajouter le texte dans le fichier texte déjà existant sans le nettoyer au préalable) [Si vous avez une solution pour le faire mieux je suis preneur !]
Ce script est supposé me permettre de savoir si il y a une carte wifi ou non (et il marche) et fera partie d'une plus grand script (fonctionnel) pour différentes informations sur l'ordinateur, de manière à faire imprimer une fiche (remplit à la main jusqu'à présent) qui devrait être automatiquement rempli et imprimé.
Mon problème est que je cherche à copier et coller dans le fichier texte crée les caractéristiques du "Network Controller" en passant par le script.
J'ai essayé plusieurs choses mais je n'ai pas pu trouvé comment le faire, du moins depuis le terminal en lui même / le script.
Quelqu'un aurait une astuce ?
Merci en avance
PS : Update :
J'utilise la commande echo $Wifi > txt.txt pour mettre les informations donner par la commande lspci, mais en revanche je ne trouve pas de moyens de faire le tri sur ces données (ne prendre que la ligne "Network Controller"... Une idée ? Merci encore !
Dernière modification par Ellaina22 (Le 26/07/2019, à 14:48)
Hors ligne
#2 Le 26/07/2019, à 14:43
- MicP
Re : Recherche de l'aide concernant un script bash
Bonjour
J'espère avoir bien compris…
#!/bin/bash
# si la chaîne "Network controller" est présente dans le retour de la ligne de commande 'lspci | grep "Network controller"'
# alors copier la ligne entière dans le fichier "wifion.md"
# sinon, renommer le fichier "wifion.md" en "nowifi.md" ("nowifi.md" sera vide)
rm {wifion,nowifi}.md
lspci | grep "Network controller" > wifion.md || mv {wifion,nowifi}.md
Donc, en retour
si le fichier wifion.md existe, il contiendra la ligne retournée par la ligne de commandes lspci | grep "Network controller"
sinon, seulement nowifi.md sera présent (et ne contiendra rien)
=======
Notez quand même qu'un périphérique wifi peut aussi être connecté par USB
mais ne sera pas visible par la commande lspci
Dernière modification par MicP (Le 26/07/2019, à 15:30)
Hors ligne
#3 Le 26/07/2019, à 14:56
- Ellaina22
Re : Recherche de l'aide concernant un script bash
nowifi.txt (ou md) est supposé m'indiquer tout simplement qu'il n'y a pas de carte wifi, mais comme tu me le rappelles à juste titre, celle-ci peut être connecté en usb... En ce cas, j'avais pensé à la commande "iw dev $wifi" pour obtenir ces informations, cela pourrait-il marcher ?
Sinon, j'ai trouvé la solution pour obtenir les informations données par la ligne de commande lspci à travers "Echo" comme indiqué dans mon PS: Update à la fin de mon sujet
Je chercherais donc plutôt à sélectionner uniquement la ligne / partie network contrôleur en passant par lspci, ou sinon en passant par "iw dev $wifi", l'adresse mac et le nom de l'interface, y aurait-il une commande spécifique permettant de récupérer uniquement une partie choisie (ou non) des informations d'une commande ? Merci
Cordialement,
Ellaina
Hors ligne
#4 Le 26/07/2019, à 15:29
- Watael
Re : Recherche de l'aide concernant un script bash
je n'utiliserais qu'un fichier, dont le contenu serait lu/modifié. KISS*
soit il est vide, soit il contient les infos requises.
* Keep It Simple Stupid
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 26/07/2019, à 15:48
- Ellaina22
Re : Recherche de l'aide concernant un script bash
je n'utiliserais qu'un fichier, dont le contenu serait lu/modifié. KISS*
soit il est vide, soit il contient les infos requises.* Keep It Simple Stupid
c'est ce que je vais faire au final, c'était surtout une version pour tester le clear plutôt que de le faire sur la version avec toutes les informations
Hors ligne
#6 Le 26/07/2019, à 16:01
- MicP
Re : Recherche de l'aide concernant un script bash
…
Je chercherais donc plutôt à sélectionner … par "iw dev $wifi", l'adresse mac et le nom de l'interface, y aurait-il une commande spécifique permettant de récupérer uniquement une partie choisie (ou non) des informations d'une commande …
Que le ou les périphériques WiFi soient connectés par USB ou PCI,
tu pourrais en obtenir une liste dont chaque ligne correspondrait à un périphérique
avec,
dans le premier champ de chaque ligne, le Nom du périphérique
et dans le deuxième champ l'adresse MAC du périphérique correspondant
=======
Pour pouvoir utiliser la commande iw
il faudra utiliser les privilèges du compte root
sudo iw dev | awk '/Interface/ {printf $2}; /addr/ {print " " $2}'
=======
Voilà ce que ça donne sur ma machine (debian),
sur laquelle j'ai une interface WiFi intégrée qui est accessible par un port PCI
et à laquelle j'ai connecté une clef WiFi USB.
root@debg53sw:~# iw dev | awk '/Interface/ {printf $2}; /addr/ {print " " $2}'
wlx000b8181925d 7a:79:80:f2:06:0a
wlp3s0 ca:40:0f:0d:e5:97
root@debg53sw:~#
Dernière modification par MicP (Le 27/07/2019, à 00:20)
Hors ligne