# GELÖST: Shell Skript funktioniert nicht



## DIY-Junkie (29. August 2019)

*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


----------



## Gary94 (29. August 2019)

*AW: Shell Skript funktioniert nicht*

Versuch dein jar zu starten ohne das directory zu wechseln:

java -Xmx12000m -jar /path/to/jar.jar -ijpath


----------



## DIY-Junkie (29. August 2019)

*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?


----------



## Gary94 (29. August 2019)

*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


----------



## DIY-Junkie (29. August 2019)

*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.


----------



## DIY-Junkie (29. August 2019)

*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?


----------



## Gary94 (29. August 2019)

*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.


----------

