Kuzes Bash-Script

  • #!/bin/sh
    NOW=$(date +"%Y-%m-%d")
    FILE="$NOW_XBMC_margro_32bit.dmg"
    echo $FILE


    Kann mir mal einer erklären, warum das so nicht funktioniert? Kommt nur .dmg dabei raus. Ist wohl nochn bissl früh.

    - 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

  • Du musst die Anführungszeichen schon richtig setzen :D


    Bash
    #!/bin/sh
    NOW=$(date +"%Y-%m-%d")
    FILE="$NOW"_XBMC_margro_32bit.dmg
    echo $FILE


    Funktioniert. Das Skript hatte ich aber so gefunden: http://www.cyberciti.biz/faq/l…atting-dates-for-display/

    - 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

  • Sachen gibts...danke für die schnelle Hilfe!

    - 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

  • Moin!


    Der Grund ist, dass ein Unterstrich ein erlaubtes Zeichen eines Variablennamens ist und ein Punkt nicht.
    Deshalb hat dein Script versucht, die Variable "NOW_XBMC_margro_32bit" zu expandieren, und die ist leer.


    Lars.

  • Wieder was gelernt!

    - 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

  • Noch ne kurze Zwischenfrage. Wie kann ich denn mittels Bash eine Datei kopieren, die eine Tilde im Dateinamen hat? Irgendwie scheint das nicht zu klappen. Komischerweise gehts aber auf der Kommandozeile.


    Ausgabe vom Skript

    Code
    mv: rename /Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2/org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb to ~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb: No such file or directory


    Wenn ich "cp /Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2/org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb ~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb" direkt ausführe, gehts.

    - 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

  • Indem Du den Dateinamen in Hochkommas "einpackst"


    Nur den Dateinamen oder inklusive Pfad?

    - 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

  • Mal mit Hochkommata probiert?


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • So siehts jetzt aus


    Code
    NOW=$(date +"%Y-%m-%d")
    DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2
    cd $DIR
    FILE=$(ls org.*)
    mv "$DIR/${FILE}" "~/Desktop/XBMC/${NOW}_${FILE}"


    mv "'$DIR/${FILE}'" "'~/Desktop/XBMC/${NOW}_${FILE}'" geht nicht


    mv '$DIR/${FILE}' '~/Desktop/XBMC/${NOW}_${FILE}' geht nicht


    Edit, so gehts:

    Code
    NOW=$(date +"%Y-%m-%d")
    DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2
    cd $DIR
    FILE=$(ls org.*)
    mv "$DIR/${FILE}" "/Users/xxx/Desktop/XBMC/${NOW}_${FILE}"


    Das komische ist, in einem anderen Skript verwende ich die Tilde auch für den Home-Ordner.

    - 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

    Einmal editiert, zuletzt von TheChief ()

  • Der setzt das irgendwie automatisch in Hochkommas, was dann nicht funktioniert:


    + cd /Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios
    ++ ls org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb
    + FILE=org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb
    + mv /Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios/org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb '~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb'


    Skript dazu:


    Code
    NOW=$(date +"%Y-%m-%d")
    DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios
    cd $DIR
    ./mkdeb-xbmc-ios.sh Release
    cd $DIR
    FILE=$(ls org.*)
    mv "$DIR/${FILE}" "~/Desktop/XBMC/${NOW}_${FILE}"


    Ja nu, mit kompletter Angabe des Pfades gehts. Damit kann ich auch leben. Verstehen würd ichs nur gern

    - 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

  • OK, lass ich die Anführungszeichen ganz weg, funktionierts auch.

    - 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

  • Ich verwede die " meistens nur bei den Variaben und lasse sie dann im script selber weg.



  • Das ist recht einfach erklaert. Packst Du die ~ in Hochkommas, dann ists ne Tilde, falls nicht wird es durch das Homeverzeichnis ersetzt.


    Sowas dacht ich mir schon, nachdems dann lief.

    - 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

  • Ich verwede die " meistens nur bei den Variaben und lasse sie dann im script selber weg.


    Ergebnis ist dann, dass man eines der typischen Scripte baut, das dann mit Leerzeichen in Verzeichnisnamen oder Dateinamen Probleme hat. Das müsste nicht sein, wenn Entwickler konsequent alle Parameter an Befehle (in deinem Fall "mv") quoten würden.


    Das Ironische an der Geschichte: Soweit ich weiß muss man die Variablenzuweisung nichtmal quoten, da, soweit mir bekannt, die Variablenzuweisung eine der wenigen Anweisungen ist, die auch ohne Quoting kein Problem mit Leerzeichen hat.

Jetzt mitmachen!

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