Hi! Christian Boltz <suse@cboltz.de> writes:
Am Donnerstag, 7. Juli 2005 17:09 schrieb Joachim Gleissner:
Christian Boltz <suse@cboltz.de> writes:
Irgendwie habe ich das Gefühl, dass wir aneinander vorbeireden ;-)
Vorbedingung: WIRELESS_WPA_PSK=foo # hier mal absichtlich ohne Quoting # untenstehender Code echo "«$PSK»" # steht jeweils in runden Klammern
Ich zitiere nochmal den Patch: + if [ ${#WIRELESS_WPA_PSK} = 64 ]; then + PSK=$WIRELESS_WPA_PSK
Mit PSK="$WIRELESS_WPA_PSK" steht hinterher in der Variable exakt der gleiche Inhalt («foo»)- die Anführungszeichen werden von der Bash verarbeitet und "geschluckt".
Der Vorteil wäre allerdings, dass Variablen mit defektem Inhalt (z. B. mit Leerzeichen oder Tabs) an dieser Stelle keinen Ärger machen können.
Stimmt. Die machen dann erst später Ärger. ;)
Für psk="$PSK" gilt übrigens dasselbe ;-)
Das stimmt so nicht. Hier der komplette Kontext: cat > $WPA_SUPP_CONF <<EOF ctrl_interface=/var/run/wpa_supplicant network={ ssid="$WIRELESS_ESSID" psk=$PSK key_mgmt=WPA-PSK } EOF Dieses psk=$PSK wird nicht von der Shell ausgeführt, sondern nur in eine Datei geschrieben.
+ else + PSK="\"$WIRELESS_WPA_PSK\""
Hier enthält die Variable hinterher wirklich Anführungszeichen («"foo"»)
Und das soll ja auch so sein. cu... -- Joachim Gleißner