Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/07/2019, à 14:42

Ellaina22

Recherche de l'aide concernant un script bash

Bonjour tout le monde smile

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

Ellaina's Bash Script

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 smile

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, à 15:48)

Hors ligne

#2 Le 26/07/2019, à 15: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, à 16:30)

Hors ligne

#3 Le 26/07/2019, à 15: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 smile
Cordialement,
Ellaina

Hors ligne

#4 Le 26/07/2019, à 16: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, à 16:48

Ellaina22

Re : Recherche de l'aide concernant un script bash

Watael a écrit :

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, à 17:01

MicP

Re : Recherche de l'aide concernant un script bash

Dans son message #3, Ellaina22 a écrit :


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, à 01:20)

Hors ligne