[Tipp] Mächtiger Parameter-Parser für shell scripte in 1 zeile
-
hallo,
mit hilfe von
#!/bin/bash export $*
kann man ein selbst geschriebenes script so aufrufen
./script SSID="mein wlan" ENCRYP=wpa KEY="langerkey\" mit sonderzeichn"
das selbst geschreibene script muss sich nicht mehr ums parsen der parameter kümmern, um an die daten zu kommen reicht ein einfaches $SSID oder $ENCRYP
keine ahnung ob ich der erste bin der export so missbraucht, aber ich wollte es euch nicht enthalten
mfg gerard
-
Oder man ruft einfach
SSID="mein wlan" ENCRYP=wpa KEY="langerkey\" mit sonderzeichn" ./script
und spart sich das andere Skript.
Hmm... aber hat jetzt schon was von register_globals, oder?
-
SG1 schrieb:
Oder man ruft einfach
SSID="mein wlan" ENCRYP=wpa KEY="langerkey\" mit sonderzeichn" ./script
und spart sich das andere Skript.
ich habe es geahnt das es leichter geht
SG1 schrieb:
Hmm... aber hat jetzt schon was von register_globals, oder?
bei meinen test nein, aber ich kann nicht von meiner installation auf die anderen schließen
-
Parameter parsen ist ja auch so schwer:
#!/bin/sh SSID=$1 ENCRYP=$2 KEY=$3
Aufruf mit:
./script "mein wlan" wpa "langerkey\" mit sonderzeichn"
Und schau Dir mal das shell-skript an und überlege mal, welches lesbarer ist. Bei Deiner Variante erkennt man nicht, welche Parameter benötigt werden.
-
nunja bei der standard variante ist es aber nicht so leicht ein parameter auszulassen
und man vergisst schnell was an welche position ist, bei der variante mit ssid="..." weiss man auch in 2 tagen das es die ssid ist (man wird gezwungen "komentare" zu machen)ist aber auch egal, für ls würde ich sicherlich kein ls mode=list vorschlagen
-
GGerard schrieb:
nunja bei der standard variante ist es aber nicht so leicht ein parameter auszulassen
lass bei deiner variante mal alle aus
-
DrGreenthumb schrieb:
GGerard schrieb:
nunja bei der standard variante ist es aber nicht so leicht ein parameter auszulassen
lass bei deiner variante mal alle aus
v2
[code]
#!/bin/bash
export WORKAROUND_FUER_DIE_MOEGLICHKEITE_DAS_KEINE_PARAMETER_UEBERGEBEN_WURDEN_ASdfSADFasdf=1 $*
[/quote]
-
oder export $* >/dev/null