• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shellscript starten funtioniert bei einigen nicht [gelöst]

Ich habe eine neue Version von Datacrow auf meinen Rechner geholt, die Version, die man einfach nur ins /home-Verzeichnis kopiert und dann mit Shellscript die Java-Datei startet. Ich habe also jetzt zwei Ordner:
Code:
datacrow
und
Code:
datacrow-ganzneu
. Beide haben die gleichen Rechte und gehören mir. In jedem Ordner stecken unter anderem 2 Dateien: datacrow.jar und datacrow.sh, wobei die Shell-Scripte als "ausführbar" berechtigt sind. In den beiden Scripten steht drin:
Code:
java -jar -Xmx256m /home/hartmut/datacrow/datacrow.jar
Code:
java -jar -Xmx256m /home/hartmut/datacrow-ganzneu/datacrow.jar
Aufgerufen in der Konsole tut das erste Script, was es soll, beim zweiten kommt die Fehlermeldung:
Code:
hartmut@Jupiter:~> Error: Unable to access jarfile /home/hartmut/datacrow-ganzneu/datacrow.jar
Jetzt der Gag: kopiere ich die Zeile im zweiten Script in die Konsole und drücke Enter, dann tut der Befehl genau das, was ich erwarte. Die Rechte:
Code:
hartmut@Jupiter:~/datacrow> ls -l datacrow*
-rw-r--r-- 1 hartmut users 1580112 19. Jun 2010  datacrow.jar
-rwxr-xr-x 1 hartmut users      55 24. Jun 2010  datacrow.sh

hartmut@Jupiter:~/datacrow-ganzneu> ls -l datacrow*
-rw-r--r-- 1 hartmut users 1166047 23. Aug 2017  datacrow.jar
-rwxr-xr-x 1 hartmut users      64 27. Nov 17:05 datacrow.sh
Was geht da vor sich?

Spielwurm
 
Schuß ins Blaue: Was mit dem Shell-Environment ("env | grep JAVA")?
Oder kann es sein, daß das Skript irgendwie als anderer Benutzer ausgeführt wird?
 
Code:
hartmut@Jupiter:~> env | grep JAVA
JAVA_ROOT=/usr/lib64/jvm/jre-1.8.0-openjdk
JAVA_HOME=/usr/lib64/jvm/jre-1.8.0-openjdk
JAVA_BINDIR=/usr/lib64/jvm/jre-1.8.0-openjdk/bin
Das kann es nicht sein, denn der von Hand eingegebene Befehl funktioniert ja
 
Code:
hartmut@Jupiter:~> ls -l -d data*
drwxrwxrwx 22 hartmut users 4096 27. Nov 17:02 datacrow
drwxrwxrwx 14 hartmut users 4096 27. Nov 17:05 datacrow-ganzneu
 
A

Anonymous

Gast
Spielwurm schrieb:
Code:
hartmut@Jupiter:~/datacrow-ganzneu> ls -l datacrow*
-rw-r--r-- 1 hartmut users 1166047 23. Aug 2017  datacrow.jar
-rwxr-xr-x 1 hartmut users      64 27. Nov 17:05 datacrow.sh

ich denke die Datei datacrow.sh ist mit 64 ein Byte zu lang, Könnte ein Leerzeichen am Ende sein, oder aber meine Vermutung:
solche und noch verrücktere komischen Auswirkungen haben sehr gerne Schellscripte die keine Unix-Zeilenvorschub haben sondern Windows(DOS) Zeilenvorschub.

versuche mal folgendes: folgender Befehl auf die Datei würde wenn das so sein sollte wie ich vermute auf Linux umstellen
# dos2unix datacrow.sh

alternativ würde auch gehen, den Inhalt der Datei in Zwischenspeicher, dann die Datei zu löschen (wichtig), und mit einem vernünftigen (Linux) Texteditor wieder neu mit Inhalt anlegen.

robi
 
Code:
# dos2unix datacrow.sh

Das war es! Da wär ich nie drauf gekommen. Vor allem, weil ich in der Konsole das bereist mitgelieferte Script mit Joe auf den richtigen Pfad editiert habe. Gibt es eine Möglichkeit, den Windows-Zeilenvorschub zu erkennen?

Danke,

Spielwurm
 
A

Anonymous

Gast
Das kann in den allermeisten Fällen schon ganz einfach mit dem Kommando "file" erkennt werden.

Code:
puppe@lux001:~> ls -l datacrow.sh 
-rw-rw-r-- 1 puppe users 63 27. Nov 21:23 datacrow.sh
puppe@lux001:~> file datacrow.sh 
datacrow.sh: ASCII text
puppe@lux001:~> unix2dos datacrow.sh 
unix2dos: Datei datacrow.sh wird ins DOS-Format konvertiert ...
puppe@lux001:~> file datacrow.sh 
datacrow.sh: ASCII text, with CRLF line terminators
puppe@lux001:~> ls -l datacrow.sh 
-rw-rw-r-- 1 puppe users 64 27. Nov 21:24 datacrow.sh
siehe die Erweiterung "with CRLF line terminators" in der Ausgabe von file

robi
 
robi schrieb:
solche und noch verrücktere komischen Auswirkungen haben sehr gerne Schellscripte die keine Unix-Zeilenvorschub haben sondern Windows(DOS) Zeilenvorschub.
:thumbs: Ja, stimmt. Kenn' ich eigentlich auch, z.B. wenn man Python-Skripte von Windows nach Linux überträgt (muß man halt erst ein dos2unix drauf machen). Hatte jetzt nicht an Windows gedacht.
 
@Robi: Mein ehrfürchtigstes Chapeau!
Ich schließe mich dem an!
Anmerkung: ich habe persönlich schon lange nichts mehr mit Windows zu tun, deshalb ist mir auch nicht in den Sinn gekommen, dass mir jemand ein Shellscript liefert, das mit einem Windows-Editor geschrieben wurde ...

Spielmops
 
Oben