BASH-Script Probleme

  1. ChrisF1977

    ChrisF1977 Thread StarterMacUser Mitglied

    Mitglied seit:
    30.12.2006
    Beiträge:
    175
    Medien:
    1
    Zustimmungen:
    7
    Hi,

    ich habe hier folgendes Script:

    Code:
    echo "Multiconvert Script for Images"
    DEF_PFAD=$PWD
    echo "Pfad zu den Bildern [$DEF_PFAD]"
    
    #Eingabe der Zieldaten
    echo "Dateityp (jpg, tif, gif)"
    read FILETYPE
    
    for i in *$FILETYPE; do
    
                    mogrify -font arial -fill white -draw "text 10,10 '(c) www.forgotten-tears.de'" -font arial -fill black -draw "text 11,11 '\
    (c) www.forgotten-tears.de'" "$i"
    done
    
    Dieses Script läuft unter Linux (BASH) und unter Windows-Cygwin (BASH) ohne Probleme. Nur hier unter OS-X in ner Bash läuft das nicht.
    Beim Ausführen kommt folgender Fehler:

    Code:
    [chris@powermac:/Volumes/HD_2/Pictures/Digital_Archiv/2007-01-21_drf_Harz/web]$ convert_console.sh
    : command not foundnts/Documents/scripte/convert_console.sh: line 1: 
    Multiconvert Script for Images
    ]fad zu den Bildern [/Volumes/HD_2/Pictures/Digital_Archiv/2007-01-21_drf_Harz/web
    : command not foundnts/Documents/scripte/convert_console.sh: line 5: 
    Dateityp (jpg, tif, gif)
    tif
    ': not a valid identifiercuments/scripte/convert_console.sh: line 8: read: `FILETYPE
    : command not foundnts/Documents/scripte/convert_console.sh: line 9: 
    'Users/chris/Documents/Documents/scripte/convert_console.sh: line 10: syntax error near unexpected token `do
    'Users/chris/Documents/Documents/scripte/convert_console.sh: line 10: `for i in *$FILETYPE; do
    [chris@powermac:/Volumes/HD_2/Pictures/Digital_Archiv/2007-01-21_drf_Harz/web]$ 
    
    Wasn das los?

    MfG
    Chris
     
    ChrisF1977, 04.02.2007
  2. jpv

    jpvMacUser Mitglied

    Mitglied seit:
    09.06.2006
    Beiträge:
    159
    Zustimmungen:
    10
    Moin, hast Du möglicherweise nicht Bash sondern eine andere Shell laufen? ich habe das Script mal in eine Textdatei kopiert und nach einem chmod 755 ausgeführt. Dann kommt bei mir tatsächlich nur ganz korrekt: ./test: line 11: mogrify: command not found
    (ich habe mogrify nicht ;) ). Ich nutze 10.4 auf einem Intel ...
    Gruß, jpv
     
  3. ChrisF1977

    ChrisF1977 Thread StarterMacUser Mitglied

    Mitglied seit:
    30.12.2006
    Beiträge:
    175
    Medien:
    1
    Zustimmungen:
    7
    Also ist schon die BASH die läuft:

    Code:
    [chris@powermac:~]$ echo $SHELL
    /bin/bash
    [chris@powermac:~]$ 
    
     
    ChrisF1977, 04.02.2007
  4. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.161
    Zustimmungen:
    3.886
    wenn du nicht explizit eine path setzt solltest du in shell-scripten immer den vollen pfad zu den executables benutzen...
    /bin/echo usw
     
    oneOeight, 04.02.2007
  5. ChrisF1977

    ChrisF1977 Thread StarterMacUser Mitglied

    Mitglied seit:
    30.12.2006
    Beiträge:
    175
    Medien:
    1
    Zustimmungen:
    7
    Die Pathvariable ist aber gesetzt:

    Code:
    [chris@powermac:~]$ echo $PATH
    /sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/opt/local/bin:/opt/local/lib:/Applications/Graphic/ImageMagick/bin/:/Users/chris/Documents/Documents/scripte/
    [chris@powermac:~]$
    Oder was meinst du damit?
     
    ChrisF1977, 04.02.2007
  6. mapfel

    mapfelMacUser Mitglied

    Mitglied seit:
    17.11.2005
    Beiträge:
    21
    Zustimmungen:
    0
    Hi,

    Du must schon angeben welchen Interpreter Du verwenden willst.
    Entweder du gibst an der Kommandozeile "sh mein_script.sh" an, oder Du schreibst den Pfad zum Interpreter in Dein Script (Sheebang Zeile):

    #!/bin/bash

    Muss in der ersten Zeile Deines Scripts stehen. Ich denke mal unter Linux wird per default die Bash benutzt, und unter Windows auch... Unter OS X ist es wahrscheinlich AS.

    Gruss,

    Martin
     
    mapfel, 04.02.2007
  7. Gerundium

    GerundiumMacUser Mitglied

    Mitglied seit:
    22.10.2005
    Beiträge:
    1.997
    Zustimmungen:
    69
    Vermutlich verschluckt er sich an den line breaks von Windows. Speichere das Script im Mac oder Unix Format ab; beispielsweise mit "pico" öffnen und anschließend einfach speichern.
     
    Gerundium, 04.02.2007
  8. dpr

    dprMacUser Mitglied

    Mitglied seit:
    04.04.2006
    Beiträge:
    519
    Zustimmungen:
    0
    Entweder das oder Du hast Spaces in Dateinamen oder Pfaden dorthin und das Quoting im Script stimmt noch nicht.

    Sorry, aber volle Pfade sind (Thema Portier- und Wartbarkeit) ein absolutes No-Go.
     
  9. jpv

    jpvMacUser Mitglied

    Mitglied seit:
    09.06.2006
    Beiträge:
    159
    Zustimmungen:
    10
    So, jetzt habe ich auch den Link wiedergefunden, den ich noch hinzufügen wollte: Bash Commands MAN Pages

    Dort gibts auch einen Link auf die MacOSX tcsh Shell
     
  10. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Sorry, aber relative Pfade sind in Hinblick auf Sicherheit ein absolutes No-Go.
    Im harmlosesten Fall wird anstelle des gewünschten Befehls (z. B. /usr/bin/find) ein Ersatz (z.B. fink /sw/bin/find) ausgeführt, der andere Optionen verwendet und deswegen nicht das gewünschte Ergebnis liefert. Die ungünstigeren Fälle dürft Ihr Euch selbst ausmalen.
     
    maceis, 05.02.2007
Die Seite wird geladen...
Ähnliche Themen - BASH Script Probleme
  1. Sascha_77
    Antworten:
    10
    Aufrufe:
    1.272
    Sascha_77
    13.01.2014
  2. benqsimens
    Antworten:
    3
    Aufrufe:
    1.185
    weltenbummler
    03.04.2013
  3. alexs77
    Antworten:
    4
    Aufrufe:
    3.118
    alexs77
    07.10.2010
  4. juriglx
    Antworten:
    3
    Aufrufe:
    6.047
    juriglx
    28.12.2008
  5. badsteve
    Antworten:
    4
    Aufrufe:
    951
    hoppelmoppel
    07.02.2007