Ich schreibe ein Bash-Skript, das den Netzwerkzugriff für meine Linux-Geräte konfiguriert.
Das Skript muss von Benutzern ohne Linux-Kenntnisse verwendet werden, die keine Administratorrechte auf dem Gerät haben. Ich habe den Konfigurationsteil der Ethernet-Schnittstellen geschrieben und es ist ok. Jetzt muss ich schreibenW-lanKonfigurationsteil.
Das Ziel des Spiels besteht darin, die Konfiguration in ein zu schreiben netplan configuration yaml file
. Hier der erwartete Workflow des Skripts:
- Verwalten Sie das interaktive Menüsystem, indem Sie Hi-Level-WLAN-Parameter abrufen (SSID, Kennwort, Authentifizierungsmodus, DHCP oder manuelle Konfiguration usw.).
- Überprüfen Sie die Konnektivität zum ausgewählten Access Point
- Daten in der YAML-Datei für die Netplan-Konfiguration speichern
- Änderungen übernehmen
Punkte 1, 3 and 4
sind ok...auch das Abrufen der Liste der verfügbaren Zugangspunkte ist ok.
Was ich nicht erreichen kann, ist der Punkt 2
(Überprüfen Sie die Konnektivität zum ausgewählten Access Point). Ich möchte ein Nutzungserlebnis wie das nächste haben
WIFI configuration parameters:
SSID: My Network
PSK: password
Actions:
- e: Edit
- t: Test connectivity
- s: Save
- q: Quit
Select Action: t
....wait while testing connectivity
Test result: OK
Press a key to continue...
Ich habe es versucht iwconfig
, aber es funktioniert nicht mit WPA, also trifft es in den meisten Fällen nicht zu.
Ich habe es versucht wpa_supplicant
und kann den Test durchführen, aber nicht auf die Art, die ich mir vorstelle ... Es handelt sich um einen Vordergrundtest, der nur mit gestoppt werden kann ctrl-C
und für Dummies (meine endgültige Benutzerzielgruppe) schwer lesbar ist.
Ich möchte
- Starten Sie die WLAN-Verbindung im Hintergrund
- Testen Sie im Hintergrund, ob die Verbindung zum Access Point in Ordnung ist oder nicht
- Schließen Sie die WLAN-Verbindung im Hintergrund (das Endziel ist die Konfiguration des Netplans).
- Gibt eine OK/Fail-Antwort an das aufrufende Skript zurück
Natürlich ist es möglich, wpa_supplicant
eine Verbindung herzustellen bg
, aber: Wie kann ich die Konnektivität prüfen und sie immer stoppen bg
?
Irgendein Vorschlag?
Danke Sandro