Java fehler Linux Ubuntu

...komplette Frage anzeigen Bild vom Error - (Server, Java, Linux)

2 Antworten

Hallo

Er hat nur als Verbindung Putty und FTP.

Falsch! Er hat SSH und FTP - Putty ist ein SSH-Client für Windows-Systeme.

/bin/sh^M: bad interpreter: No such file or directory

Wie soll man, ohne das Script und den ausgeführten Befehl zu kennen, Rückschlüsse ziehen können?

Es ist möglich das Du Dich nicht im entsprechenden Verzeichnis befunden hast

Weiß nicht was ich machen soll.
cd /pfad/wo/das/script/liegt/
bash scriptname.sh
Alle Wichtigen-Informationen:

Das sind, im Bezug auf das Problem selbst, irrelevante Angaben. Zeig doch lieber mal:

ls -l /home/$(whoami)/

bzw. des Verzeichnisses in dem das Script liegt.

Linuxhase

lischetzkel 06.12.2013, 20:31

Ok, danke. es lag das ich es nicht mit dem Befehl Bash ausgeführt hatte, sonst war alles richtig.

Vielen Dank.

0
Linuxhase 07.12.2013, 00:20
@lischetzkel

@lischetzkel

sonst war alles richtig.

Quatsch!

  • Eine Datei kann ausführbar sein oder eben nicht.
  • Eine ausführbare Datei kann ein Script oder eine Binärdatei sein.
  • Ein Script benötigt immer einen Interpreter!

Ist ein Script ausführbar, dann kann man es so ausführen:

./dateiname.sh

In der Regel steht der ausführende Interpreter in der ersten Zeile, z.B.: #/bin/bash

Ist das Script aber nicht ausführbar, dann muß man eben direkt den Interpreter angeben und diesem die Datei als Parameter übergeben.

bash datei.sh
phyton datei.py
perl datei.sh
java datei.jar

Linuxhase

1
Thomasg 07.12.2013, 10:43
@Linuxhase

Ich glaube, sein Problem ist, dass in dem Script mal mit einem Windoof Editor rumgefummelt wurde.

#!/bin/sh^M

Einfach mal dieses ^M entfernen, dann wird es vermutlich auch funktionieren.

0
lischetzkel 09.12.2013, 19:59
@Thomasg

nee, habe es schon mit #!/bin/sh gemacht. da war kein ^M. aber er lies sich nicht ausfürhen, so musste ich den Interpreten direkt angeben.

0
/bin/sh^M: bad interpreter: No such file or directory

Microsoft macht gegenüber dem viel älteren Unix-Betriebssystem ( Linux ist ein Unix-Derivat und macht es so wie das Unix-Vorbild) Unterschiede am Dateiende.

Das ^M hinter /bin/sh ist so ein Zeichen, dass dir Windows hinterlassen hat. Normalerweise sollte bei einer Übertragung mit ftp eine Transformation erfolgen aber nur, wenn ftp auf "ASCII" und nicht auf "BINARY" eingestellt ist. Binary bedeutet, dass jedes Zeichen, so wie es in einer Datei steht übertragen wird. Es wird also nur im ASCII-Mode Konvertiert.

Suche doch mal bei den Einstellungen deines FTP-Tools so eine Einstellung.

Wenn du das über die Kommandozeile und einem solchen FTP-Client ausführt, dann gib dort einfach vor dem put den Befehl ascii ein, den Standard ist normalerweise "bin".

Was möchtest Du wissen?