GELÖST: Shell Skript funktioniert nicht

DIY-Junkie

Freizeitschrauber(in)
GELÖST: Shell Skript funktioniert nicht

Hallo,

ich habe ein einfaches shell skript erstellt, um die Befehle nicht jedes mal eingeben zu müssen:

cd /usr/share/java
java -Xmx12000m -jar ij.jar -ijpath

Das wechselt also einfach nur den Pfad und soll ein Programm starten. Die Befehle in die shell kopiert tun was sie sollen.
Also hab ich das als Textfile gespeichert, ausführbar gemacht und in ~/bin kopiert.
Starte ich das Skript dann im Terminal mit dem Skriptnamen erscheint folgende Fehlermeldung:

: No such file or directoryb: line 1: cd: /usr/share/java
Error: Unable to access jarfile ij.jar

Ein Aufruf mit vorangestelltem Punkt bringt folgende Fehlermeldung:

: No such file or directory
Error: Unable to access jarfile ij.jar

Stelle ich dem Skript den Befehl
#!bin/bash
voran, erscheint folgende Fehlermeldung:
bash: /home/nutzername/bin/imageJ_12gb: /bin/bash^M: bad interpreter: No such file or directory

Was mache ich falsch?

PS: OS ist Linux Mint 18.3 MATE
 
Zuletzt bearbeitet:
AW: Shell Skript funktioniert nicht

Versuch dein jar zu starten ohne das directory zu wechseln:

java -Xmx12000m -jar /path/to/jar.jar -ijpath
 
AW: Shell Skript funktioniert nicht

Das funktioniert, vielen Dank.
Warum aber geht es mit dem cd Befehl nicht? Dass das shell in einem Unterprozess läuft, ist mir bekannt. Sollte doch aber in diesem Fall nichts ausmachen?
 
AW: Shell Skript funktioniert nicht

Hm da kann ich nur raten.

Du sagst du hättest dein Script in "~/bin" gelegt, möchtest in deinem Script aber nach "/usr/share/java" wechseln -> dort liegt dein .jar aber nicht
 
AW: Shell Skript funktioniert nicht

Doch das liegt dort. Mit dem Befehl cd /usr/share/java wechsle ich ja komplett vom root / nach oben durch. Also spielt es ja keine Rolle, in welchem Pfad ich vorher war.
Übrigens:
Der Befehl
cd /
funktioniert im skript ebenfalls nicht. Ebenso wenn ich Unterordner in /home/nutzername/bin erzeuge, kann ich die mit cd auch nicht ansprechen. Der Hund liegt wohl irgendwo grundsätzlich begraben.
 
AW: Shell Skript funktioniert nicht

Ich habe die Lösung gefunden (glaube ich). Es muss irgendwas mit der Formatierung am Zeilenende zu tun haben.

Zitat eines Kommentars von einem identischen Problem: linux - How come cd doesn't work in my shell script? - Super User

There is a difference between how lines in a file are terminated on Windows and Linux. That's why you are getting the carriage return character in there. If you want to continur using WinVi you could check the settings of the editor so that you saved the file as a UNIX file with UNIX line termination. I'll look that up.

Habe die Datei mit emacs bearbeitet und gespeichert, nun geht es.
Problem war wahrscheinlich, dass ich die Datei mit notepad bearbeitet oder erstellt habe. Ich weiß nicht mal, wie notepad auf meinen PC gelangt ist, vermutlich kam das mit Wine?
 
AW: GELÖST: Shell Skript funktioniert nicht

Ach jetzt hab ichs verstanden.

Ja das kann natürlich sein, btw. ein Tipp: Mit "pwd" kannst du dir das aktuelle working directory anzeigen lassen. einfach in dein Script einbauen dann kannst du prüfen wo du dich gerade befindest.
 
Zurück