1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Linux-Bash-Skript in Mac OS 10.5.7 nutzen?

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von MoTw, 13.05.09.

  1. MoTw

    MoTw Jonagold

    Dabei seit:
    01.01.09
    Beiträge:
    23
    Hi!

    Ich habe ein Bash-Skript für Linux geschrieben, und nun möchte ich es im Mac OS nutzen. Sollte doch eigentlich funktionieren, schließlich ist das Terminal ja auch eine Bourne-Again-Shell, oder?

    Naja, jedenfalls habe ich den Code erstmal auf dem Mac als .txt-Datei abgespeichert und dann mit
    Code:
    chmod +x skript
    ausführbar gemacht. Als ich das Skript jedoch mit
    Code:
    ./skript
    starten wollte, kam nur "cannot execute binary file!".

    Kann ich das Linux-Bash-Skript nicht als Mac-Bash-Skript verwenden?

    Ich habe das Skript mal angehängt (als txt)

    EDIT: oh Entschuldigung mein Firefox macht Probleme mit Error 400! Das Skript gibts auch hier!

    EDIT: Oh mein Gott was ist denn los?????? Naja. Hier der ganze Text:


    Code:
    function zeichenTr ()
    {
            case "$1" in
                "")
                    echo -n ""
                    ;;
                "a")
                    echo -n "03B1"
                    ;;
                "b")
                    echo -n "03B2"
                    ;;
                "g")
                    echo -n "03B3"
                    ;;
                "d")
                    echo -n "03B4"
                    ;;
                "e")
                    echo -n "03B5"
                    ;;
                "z")
                    echo -n "03B6"
                    ;;
                "h")
                    echo -n "03B7"
                    ;;
                "q")
                    echo -n "03B8"
                    ;;
                "i")
                    echo -n "03B9"
                    ;;
                "k")
                    echo -n "03BA"
                    ;;
                "l")
                    echo -n "03BB"
                    ;;
                "m")
                    echo -n "03BC"
                    ;;
                "n")
                    echo -n "03BD"
                    ;;
                "x")
                    echo -n "03BE"
                    ;;
                "o")
                    echo -n "03BF"
                    ;;
                "p")
                    echo -n "03C0"
                    ;;
                "r")
                    echo -n "03C1"
                    ;;
                "s")
                    echo -n "03C3"
                    ;;
                "j")
                    echo -n "03C2"
                    ;;
                "t")
                    echo -n "03C4"
                    ;;
                "u")
                    echo -n "03C5"
                    ;;
                "f")
                    echo -n "03C6"
                    ;;
                "c")
                    echo -n "03C7"
                    ;;
                "y")
                    echo -n "03C8"
                    ;;
                "w")
                    echo -n "03C9"
                    ;;
    		"A")
                    echo -n "0391"
                    ;;
                "B")
                    echo -n "0392"
                    ;;
                "G")
                    echo -n "0393"
                    ;;
                "D")
                    echo -n "0394"
                    ;;
                "E")
                    echo -n "0395"
                    ;;
                "Z")
                    echo -n "0396"
                    ;;
                "H")
                    echo -n "0397"
                    ;;
                "Q")
                    echo -n "0398"
                    ;;
                "I")
                    echo -n "0399"
                    ;;
                "K")
                    echo -n "039A"
                    ;;
                "L")
                    echo -n "039B"
                    ;;
                "M")
                    echo -n "039C"
                    ;;
                "N")
                    echo -n "039D"
                    ;;
                "X")
                    echo -n "039E"
                    ;;
                "O")
                    echo -n "039F"
                    ;;
                "P")
                    echo -n "03A0"
                    ;;
                "R")
                    echo -n "03A1"
                    ;;
                "S")
                    echo -n "03A3"
                    ;;
                "T")
                    echo -n "03A4"
                    ;;
                "U")
                    echo -n "03A5"
                    ;;
                "F")
                    echo -n "03A6"
                    ;;
                "C")
                    echo -n "03A7"
                    ;;
                "Y")
                    echo -n "03A8"
                    ;;
                "W")
                    echo -n "03A9"
                    ;;
                *)
    	    	      echo -n $1
    	    	     ;;
            esac
    }
    
    WORT=$1
    LEN=${WORT}
    # echo $LEN
    i=0
    max=${#WORT}
    
    while ((i < max))
    do
            zeichenTr ${WORT:$i:1}
            i=$((i+1))
    echo -n "Thank you for using Alatto!"
    done
    echo
    
     
  2. MacAlzenau

    MacAlzenau Golden Noble

    Dabei seit:
    26.12.05
    Beiträge:
    19.398
    Also bei dem Link bekommt man vorwiegend Zeichenwirrwarr.
    Ich kann zwar sicher nicht helfen, aber du soltest es mal als Text hochladen oder in einen Post kopieren.
    LINUX ist nicht UNIX, also da kann es schon zu Inkompatibilitäten kommen.

    Edit: Ah ja, hat sich überschnitten.
     
  3. MoTw

    MoTw Jonagold

    Dabei seit:
    01.01.09
    Beiträge:
    23
    Ja das hab ich auch gemerkt. Im ersten Post noch mal das Skript.
     
  4. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Es fehlt z.B. das #!/bin/bash am Anfang des Scriptes oder hast du das nicht mit rein kopiert?
     
  5. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Also nimm mal den Code oben aus deinem Post und kopiere ihn einfach per Apfel + C, dann geh ins Terminal und leg mit nano ne neue Datei an und Paste ihn da rein. Dann noch chmod +x und es sollte gehen. Bei mir auf jeden Fall. Wahrscheinlich ist was beim kopieren der Datei schief gegangen.
    BTW: Was macht das Skript eigentlich?
     
  6. manromen

    manromen Riesenboiken

    Dabei seit:
    28.01.08
    Beiträge:
    289
    Linux ist ein Unix - sogar ein posix - genau wie os x.
     
  7. MacAlzenau

    MacAlzenau Golden Noble

    Dabei seit:
    26.12.05
    Beiträge:
    19.398
    Seit wann denn das?

    Edit: Und gleich mal die allwissende Wikipedia hinterher:
    "Einige andere Systeme wie GNU, Linux oder QNX sind im historischen Sinne keine Unixderivate, da sie nicht auf dem ursprünglichen Unixquelltext basieren, sondern separat entwickelt wurden. Sie sind jedoch trotzdem unixoide Systeme, da sie die für Unix typischen Betriebssystemfunktionen implementieren. "
    Ich lese da "unixoid", und das ist eben nicht UNIX.
     
  8. MoTw

    MoTw Jonagold

    Dabei seit:
    01.01.09
    Beiträge:
    23
    Also erstmal Danke für eure Antworten :)

    @drlecter: Unter Linux (Ubuntu 9.04) funktionierte das nur ohne #!/bin/bash. Deswegen hab ich das weggemacht.
    @plaetzchen: Was ist nano?
    Das Skript soll (alt-)griechische Zeichen in Unicode konvertieren - für mein Java-Programm, das (griechische) Vokabeln abfragt, und das liest die griechischen Zeichen eben aus dem Unicode heraus. Und weil das einzelne Heraussuchen des Unicodes jedes einzelnes Zeichens viiiel zu lange dauert, habe ich das eben automatisieren wollen: Man gibt einfach
    Code:
    ./convert <Wort>
    ein und - simsalabim - gibt das Terminal die Unicode-Entsprechung aus.
     
  9. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Stelle in deinem Editor sicher, dass du...

    A) wirklich als "Plain Text" speicherst und nicht etwa als RTF.
    (Das mitgelieferte TextEdit hat zwei verschiedene Betriebsmodi)

    B) ...bei Verwendung eines anderen Editors im Kodierungsformat "UTF-8, kein BOM" speicherst.
    (BOM == Byte Order Mark, optionale binäre Kennzeichnung des verwendeten Unicode-Sets zu Beginn der Datei. Führt in der Shell dazu, dass die Datei nicht als Text, sondern als Binärcode betrachtet wird. Viele Editoren bieten die Möglichkeit, das an- oder abzuschalten.)
     
  10. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Nein, GNU/Linux ist weder voll POSIX-kompatibel noch ein UNIX.
    http://www.macmark.de/osx_xnu.php#unix-standards
     
    cr4nky gefällt das.
  11. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    HUH??? "...Linux ist proprietär..." ???

    Streich diese Falschbehauptung doch bitte. Die GPL macht das unmöglich.
    Die Eigenschaft "proprietär" hat nichts mit Standardkonformität zu tun.

    <scnr>
     
  12. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    So wäre es ja auch falsch und so ein Satz steht dort auch nicht. Der zugehörige einschränkende Nebensatz darf nicht einfach weggelassen werden. Ich beziehe das "proprietär" damit auf einen bestimmten Aspekt:
    Dieser Standard ist ein proprietärer (eigener) Linux-Stardard. "Proprietär" kommt vom lateinischen "proprius" (eigen). Ein eigener (proprietärer) Linux-Standard, der nicht kompatibel zu POSIX und UNIX 03 ist, die allgemeine Standards sind, während die "Linux Standard Base" per Definition nur linuxspezifisch ist.
     
  13. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Nicht im Sinne einer Eigenschaft, sondern in Bezug auf das Eigentum.
    Linux besitzt zwar die Eigenschaft, einem selbst aufgestellten (Un-)Standard zu folgen. Es beansprucht aber keinerlei Eigentumsrecht daran. Damit ist es nicht proprietär, und der Standard ebensowenig. Er ist einfach nur ein Pseudo- und Möchtegern-Standard. Ein Bastard. Eine Nullnummer ohne Wert oder Bedeutung. Heisse Luft mit lauer Brise.
    Imaginär, aber deshalb noch lange nicht proprietär.

    "Wer gerne tote Sprachen bemüht, der sollte erst mal die Verben richtig dekantieren können."
    [ Danny Kaye ] :)
     
  14. MacAlzenau

    MacAlzenau Golden Noble

    Dabei seit:
    26.12.05
    Beiträge:
    19.398
    Wobei das Wort nicht direkt aus einer toten Sprache kommt, denn der Wahrig (1970) verweist als Herkunft auf das Französische. Propriétaire = Eigentümer.
     
  15. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Ich stell mir grade die Reaktion von Stallmann vor, wenn er das liest.

    Aber die GPL ist in dem Sinne proprietär, da sie sich viral verhält.
    Sie beansprucht das Eigentumsrecht für Projekte, die GPL Projekte enthalten.
    Das Eigentumsrecht hat also die Gesellschaft. => Linux ist propritär.
     
  16. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Stallmann hat mit Linux nichts zu tun, sondern mit GNU.

    Proprietär hat offenbar diverse Bedeutungen :)

    Indem die LSB in Konkurrenz zu etablierten Standards wie POSIX und UNIX 03 geschaffen wurde, ist sie proprietär. So sieht es der hier auch:
    http://lexikon.martinvogel.de/proprietaer.html

    Oder hier:
    http://www.lexexakt.de/glossar/proprietaer.php

    "Hersteller" sind dann jeweils die Verantwortlichen in der Linux-Welt. Die LSB dient der Angleichung der verschiedenen Linux-Distributionen untereinander.

     
  17. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Ich würde aber mal behaupten, dass Linux das Aushängeschild von GNU ist. Immerhin hat es ja sein ursprüngliches OS abgelöst.
     
  18. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    Pico/Nano ist ein texteditor der auf der shell arbeitet.

    also mit nano bzw pico funktioniert es bei mir:

    0) Quelltext in die Zwischenablage
    1) Terminal aufmachen
    2) pico skript
    3) Apfel+V
    3) CTRL+o (speichern)
    4) CTRL+x (pico beenden)
    5) chmod +x skript
    6) ./skript bla

    geht bei mir.
    Gruss
     
  19. MacAlzenau

    MacAlzenau Golden Noble

    Dabei seit:
    26.12.05
    Beiträge:
    19.398
    Ihr verlauft euch ein wenig in eine akademische Diskussion. Für den gebildeten Laien ist doch hauptsächlich wichtig: Wieweit kann ich Befehle übergreifend verwenden zwischen UNIX, Linux, OS X, BSD usw. und inwieweit Skripte? Passt die syntax, muß ich schlimmstenfalls mit einem 'command not found' rechnen, oder kann was ganz Abartiges passieren.
    Immer natürlich vorausgesetzt, daß der Benutzer sein Hirn vorher einschaltet.
     
  20. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Wenn es danach ginge, welche oder wieviele andere Standards bei der Grundsteinlegung eines weiteren schon etabliert sind....
    ...wen oder was könnte man dann vom Attribut der Proprietärie denn überhaupt noch freisprechen?
    Adam vielleicht grade noch, Eva schon nicht mehr?

    Also ich würde Linux ja lieber bezeichnet sehen als "piraterär".
    Würde viel besser passen. Nur so nebenbei.

    PS
    Zur Strafe für die Zitatverfälschung sagst du das jetzt 20 mal ganz schnell hintereinander laut und deutlich auf:
    „The pellet with the poison's in the vessel with the pestle,
    the chalice from the palace has the brew that is true.“​
    Prost!
     

Diese Seite empfehlen