[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


Anmelden zum Antworten