ubuntuusers.de

Für diese Funktion musst du eingeloggt sein.

wpa_supplicant Dateipfad für SSID und PSK angeben. Oder Script

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

ManuOG

Anmeldungsdatum:
6. Dezember 2019

Beiträge: Zähle...

Servus,

ich programmiere auf einem Raspberry in Java und bin völliger Anfänger. Nun möchte ich gerne die wpa_supplicant.conf so ändern dass die SSID und PSK aus einer Datei, im Homeverzeichnis, eingetragen oder übernommen wird. Da ich dies über mehrere Wege (Smatphone und Web) in die beiden Datein schreiben kann, wäre es für mich momentan das einfachste den Inhalt aus den beiden Datein zu nehmen und in die wpa-supplicant.conf einzutragen.

Hier ein Beispiel:

country=us
update_config=1
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="/home/manu/wlan/ssid.manu"
psk="/home/manu/wlan/psk.manu"
}

Funktioniert logischerweise so nicht. Ein Script würde auch gehen. Nur weis ich nicht wie ich es umsetze. Könnte mir jemand bitte helfen?

Danke ☺

Bearbeitet von rklm:

Wir nehmen keine gebrauchten Dateien zurück - deshalb gibt es auch kein Pfand. 😉 Titel entwanzt.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Ahoi,

ich persönlich würde das nicht in Java machen, weil es als Shellskript relativ kurz ist:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/sh

cat >wpa_supplicant.conf <<EOF
country=us
update_config=1
ctrl_interface=/var/run/wpa_supplicant

network={
    ssid="$(cat /home/manu/wlan/ssid.manu)"
    psk="$(cat /home/manu/wlan/psk.manu)"
}
EOF

Damit hast du dann eine wpa_supplicant.conf geschrieben. Die Stichworte dafür wären Here Documents, das dort verlinkte I/O Redirection und Command Substitution.

Hoffe, das hilft dir.

ManuOG

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2019

Beiträge: 2

Danke dir,

es ist genau das was ich gesucht habe. Auch danke für die Links. Da steht noch so viel mehr was ich gebrauchen kann.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Vain schrieb:

ssid="$(cat /home/manu/wlan/ssid.manu)" psk="$(cat /home/manu/wlan/psk.manu)"

Die Anführungsstriche bringen hier gar nichts. Nur so als Nebeninformation, falls jmd. versucht hier nebenbei Scripten zu lernen.

Bei x=$(...) sorgt das $() schon dafür, dass der gesamte Output in x landet.

Bei der Ausgabe von x, da macht es einen Unterschied, ob Du echo "$x" oder echo $x benutzt.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

user_unknown schrieb:

Vain schrieb:

ssid="$(cat /home/manu/wlan/ssid.manu)" psk="$(cat /home/manu/wlan/psk.manu)"

Die Anführungsstriche bringen hier gar nichts. Nur so als Nebeninformation, falls jmd. versucht hier nebenbei Scripten zu lernen.

Doch, die bringen was. Nicht auf Ebene der Shell, das ist richtig, aber die sind Teil der Syntax für die wpa_supplicant.conf.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Vain schrieb:

user_unknown schrieb:

Vain schrieb:

ssid="$(cat /home/manu/wlan/ssid.manu)" psk="$(cat /home/manu/wlan/psk.manu)"

Die Anführungsstriche bringen hier gar nichts. Nur so als Nebeninformation, falls jmd. versucht hier nebenbei Scripten zu lernen.

Doch, die bringen was. Nicht auf Ebene der Shell, das ist richtig, aber die sind Teil der Syntax für die wpa_supplicant.conf.

Ah, ich sehe, als here-Document wird das 2x ausgeführt, und die SSID oder der PSK kann Blanks enthalten.

Ich bin widerlegt.

Antworten |