Was macht ConfigValue=${ConfigValue//\//\\/} ?

  • Hallo,


    Versuche gerade ein Script zu kapieren. Kann mir mal einer erklären, was das genau macht!


    Code
    ConfigValue=${ConfigValue//\//\\/}


    Vielen Dank


    Steevee

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • Ich würde vermuten, dass das alle Slashes escapen soll, indem es ein Substring Replacement durchführt (siehe http://tldp.org/LDP/abs/html/string-manipulation.html:(

    Code
    ${string//substring/replacement}
    Replace all matches of $substring with $replacement.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Nur welche von den Slashes und Backslashes ist nun der Substring und welche das replacement?
    "\" wird ersetzt durch "/\\/" ????

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • Zitat

    ConfigValue=${ConfigValue//\//\\/}


    "\/" ist der Slash, der escaped werden muss, damit er richtig in dem Befehl erkannt wird und der wird ersetzt durch "\\/", so dass am Ende ein "\/" herauskommt, wenn der String evaluiert wird

    Code
    $ ConfigValue="/tmp/test"
    $ ConfigValue=${ConfigValue//\//\\/}
    $ echo $ConfigValue 
    \/tmp\/test

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ahhh... ja.


    Danke.


    Gruß
    Steevee

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • Ahhh... ja.

    Wie sagte der Pumuckl immer so schön: "Es ist alles ganz natürlich und erklärlich!" :unsch

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Da frag ich mich immer wieder, wer sich sowas ausdenkt...genauso wie den ganzen Regex-Kram. :D

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Wieso. Regex macht doch Spaß


    Ja, wie Akademikersex: rein theoretisch ja...

  • yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • regex ist geil , wenn man es begriffen hat ......... :D


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!