/usr/local/bin/ut: 29: Syntax error: Bad substitution

cabriofahrer

Well-Known Member
Habe Unreal Tournament mit dem Linux-Installer installiert, doch ich erhalte die obenstehende Meldung. Ein Googeln hat Folgende Lösung gebracht:

Man soll /usr/local/bin/ut editieren und "#!/bin/sh" durch "#!/bin/bash" ersetzen.
Doch wenn ich das tue, erhalte ich folgende Meldung unter bash:

$ ut
bash: /usr/local/bin/ut: /bin/bash: bad interpreter: No such file or directory

Jemand eine Idee?
 
Habe Unreal Tournament mit dem Linux-Installer installiert, doch ich erhalte die obenstehende Meldung. Ein Googeln hat Folgende Lösung gebracht:

Man soll /usr/local/bin/ut editieren und "#!/bin/sh" durch "#!/bin/bash" ersetzen.
Doch wenn ich das tue, erhalte ich folgende Meldung unter bash:

$ ut
bash: /usr/local/bin/ut: /bin/bash: bad interpreter: No such file or directory

Jemand eine Idee?
Hirn einschalten:
# which bash
/usr/local/bin/bash
 
Danke, das war's. Trotzdem finde ich die Art und Weise zu antworten unangemessen. Ich bin nicht etwa nicht darauf gekommen, weil ich das Gehirn nicht eingeschaltet hatte, sondern weil ich es wirklich nicht gewußt habe. So weitreichend sind meine Kenntnisse auch nicht.
 
Och, ich find's nicht so wild ;)

which gehört schließlich zu den Standardtools :)

Zudem musst du es auch ja nicht gleich als boshafte Antwort einschätzen, sondern als Tipp fürs nächste Mal.
 
Es gab mal jemanden, der hatte einen ziemlich obskuren Perl-Einzeiler in seiner Signatur stehen. Dieser löste in "rm -rf /" auf. Oder so irgendwie war das. Natürlich gab es Leute, die das blind abgetippt haben. Daher war der Post von cheasy nicht unhöflich, sondern absolut richtig. Man sollte nicht einfach irgendwelche Dinge abtippen, wenn man nicht versteht, was danach passiert.

Im Übrigen ist die Unkenntnis des OP trotz über 300 Posts schon seltsam. which(1) gehört zu den absoluten Grundlagen, die man im Umgang mit einem UNIX-System kennen muß.
 
@cabriofahrer: hat dir der tip geholfen oder nicht?

im moment bin ich aber noch am fruehstuecken.
aber dank cheasy denk ich jetzt auch dran dass ich nachher unbedingt noch mein hirn hochfahren sollte ;)

@0815: komm... als ob dir auf die schnelle ALLE deine tools einfallen die du hast...
 
hmm, also bei mir gibts
Code:
$ which bash
/bin/bash

die links müssten eigentlich gesetzt werden, schließlich gibt es tausende scripts da draußen die #!/bin/bash wollen....
 
Ich habe die Bash nicht mal drauf, so unabdingbar kann die also gar nicht sein. Bei mir läuft schließlich auch einiges.
 
Ich komme auch bestens ohne den Symlink aus. Wenn ein Skript nicht will, passe ich lieber das Skript an ;)
 
Danke, das war's. Trotzdem finde ich die Art und Weise zu antworten unangemessen. Ich bin nicht etwa nicht darauf gekommen, weil ich das Gehirn nicht eingeschaltet hatte, sondern weil ich es wirklich nicht gewußt habe. So weitreichend sind meine Kenntnisse auch nicht.
Entschuldigung. Ich hatte das ;) vergessen.
 
Ja, hat es, hatte ich oben doch schon direkt gesagt, danke.

Trotzdem verstehe ich nicht ganz, warum es nich mit /bin/sh geht, denn ein which sh ergibt doch /bin/sh?
...
Man soll /usr/local/bin/ut editieren und "#!/bin/sh" durch "#!/bin/bash" ersetzen.
Doch wenn ich das tue, erhalte ich folgende Meldung unter bash:
Code:
$ ut
bash: /usr/local/bin/ut: /bin/bash: bad interpreter: No such file or directory
Computer sind gemein: sie tun genau das, was Du sagst.
Ein Dokument, das mit "#!"anfängt, wird von der Shell nicht als Maschinencode interpretiert, sondern dem in den folgenden Zeichen bis zum Zeilenende angegebenen Interpreter (hier: "/bin/bash") zur ausführung übergeben.

Unter Leenucks liegt an der angegebenen Stelle eine bash, unter FreeBSD nicht. Deshalb muss man "/bin/bash" durch den Speicherort der bash auf FreeBSD ersetzen:"/usr/local/bin/bash"

Moral: Nicht alles was geschrieben steht ist wahr.
 
Trotzdem verstehe ich nicht ganz, warum es nich mit /bin/sh geht, denn ein which sh ergibt doch /bin/sh?
Weil die Linuxer anscheinend grundsätzlich schlampig arbeiten. /bin/sh ist unter Linux einfach ein Link auf /bin/bash, während /bin/sh unter FreeBSD eine modifizierte Almquist-Shell ist (die der originalen /bin/sh nachempfunden wurde). Wenn ein Linuxer #!/bin/sh schreibt, dann meint er eigentlich #!/usr/bin/env bash und verwendet munter bash-spezifische Features. (Verallgemeinerungen sind schön, aber hier scheint es wirklich in der überwiegenden Anzahl der Fälle zuzutreffen.)

dettus schrieb:
@0815: komm... als ob dir auf die schnelle ALLE deine tools einfallen die du hast...
Mit Sicherheit nicht alle, die irgendwo auf meiner Platte vergraben sind. Die UNIX-Basics allerdings schon...
 
Ein System, das noch nicht mal /usr/bin/env betreffend POSIX-kompatibel ist, kann man sowieso in die Tonne treten. Aber wenigstens das sollten die meisten Linux-Distributionen dann doch gerade noch hinbekommen. Hoffe ich jedenfalls.

Bei gescheiten Betriebssystemen ist das auf jeden Fall gegeben. Zumindest bekommen FreeBSD, NetBSD und Solaris das hin, andere Systeme habe ich gerade nicht zur Hand.

Hmm, eine Prise gepflegtes Linux-Bashing ist zum Ausspannen gelegentlich gar nicht mal so verkehrt. :D
 
Zurück
Oben