Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Shellscript starten funtioniert bei einigen nicht [gelöst]

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1329
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Shellscript starten funtioniert bei einigen nicht [gelöst]

Beitrag von Spielwurm »

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: Alles auswählen

datacrow
und

Code: Alles auswählen

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: Alles auswählen

java -jar -Xmx256m /home/hartmut/datacrow/datacrow.jar

Code: Alles auswählen

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: Alles auswählen

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: Alles auswählen

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
Zuletzt geändert von Spielwurm am 5. Dez 2020, 18:30, insgesamt 1-mal geändert.
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 15.1, AMD Phenom und Nvidia GT210 für Video mit Opensuse 15.1, Hardkernel Odroid XU4 mit Debian als Server, Thinkpad 570 für Audio mit Puppy-Linux
abgdf
Guru
Guru
Beiträge: 3352
Registriert: 13. Apr 2004, 21:15

Re: Shellaufruf von Java hier ja da nein

Beitrag von abgdf »

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?
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1329
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: Shellaufruf von Java hier ja da nein

Beitrag von Spielwurm »

Code: Alles auswählen

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
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 15.1, AMD Phenom und Nvidia GT210 für Video mit Opensuse 15.1, Hardkernel Odroid XU4 mit Debian als Server, Thinkpad 570 für Audio mit Puppy-Linux
Gräfin Klara
Hacker
Hacker
Beiträge: 587
Registriert: 23. Jun 2008, 20:51

Re: Shellaufruf von Java hier ja da nein

Beitrag von Gräfin Klara »

Berechtigungen von:
~/datacrow
~/datacrow-ganzneu
?
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1329
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: Shellaufruf von Java hier ja da nein

Beitrag von Spielwurm »

Code: Alles auswählen

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
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 15.1, AMD Phenom und Nvidia GT210 für Video mit Opensuse 15.1, Hardkernel Odroid XU4 mit Debian als Server, Thinkpad 570 für Audio mit Puppy-Linux
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3185
Registriert: 25. Aug 2004, 02:13

Re: Shellaufruf von Java hier ja da nein

Beitrag von robi »

Spielwurm hat geschrieben: 27. Nov 2020, 17:21

Code: Alles auswählen

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
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1329
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: Shellaufruf von Java hier ja da nein

Beitrag von Spielwurm »

Code: Alles auswählen

# 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
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 15.1, AMD Phenom und Nvidia GT210 für Video mit Opensuse 15.1, Hardkernel Odroid XU4 mit Debian als Server, Thinkpad 570 für Audio mit Puppy-Linux
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3185
Registriert: 25. Aug 2004, 02:13

Re: Shellaufruf von Java hier ja da nein

Beitrag von robi »

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

Code: Alles auswählen

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
abgdf
Guru
Guru
Beiträge: 3352
Registriert: 13. Apr 2004, 21:15

Re: Shellaufruf von Java hier ja da nein

Beitrag von abgdf »

robi hat geschrieben: 27. Nov 2020, 20:20solche 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.
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2218
Registriert: 10. Nov 2012, 11:00

Re: Shellaufruf von Java hier ja da nein

Beitrag von gehrke »

robi hat geschrieben: 27. Nov 2020, 20:20 die Datei datacrow.sh ist mit 64 ein Byte zu lang,
@Robi: Mein ehrfürchtigstes Chapeau!
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/ (Friendica, Mastodon, Diaspora und vieles mehr)
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1329
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: Shellaufruf von Java hier ja da nein

Beitrag von Spielwurm »

@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
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 15.1, AMD Phenom und Nvidia GT210 für Video mit Opensuse 15.1, Hardkernel Odroid XU4 mit Debian als Server, Thinkpad 570 für Audio mit Puppy-Linux
Antworten