Doppelklicken Sie, um die .sh-Datei auszuführen

Doppelklicken Sie, um die .sh-Datei auszuführen

GUI:
Ich habe die Berechtigungen einer sh-Datei geändert, damit ich sie lesen, schreiben und ausführen kann. Ich habe darauf doppelgeklickt und „Ausführen in Shell/Terminal“ (je nachdem, was auf Englisch erscheint) ausgewählt, aber sie wurde nicht ausgeführt. Ich habe darauf doppelgeklickt und „Ausführen“ ausgewählt, aber sie wurde nicht ausgeführt.

Befehlszeile:
bash *filename*führt es aus,
sh *filename*führt es aus

Der Dateiinhalt ist:

#!/bin/bash

# get dirsyncpro home
DIRSYNCPRO_HOME="$(dirname $0)"

# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $* 

Funktioniert auf dem Computer dieser Person:

http://www.knowliz.com/2008/08/how-to-installrun-sh-file-in-linux.html

Was ist los?

Antwort1

Ihr Test ist falsch. Sie müssen ihn ausführen können, ohne vorher eine andere Shell aufzurufen.

./my_little_script.sh

Und nicht

bash my_little_script.sh

Überprüfen Sie außerdem noch einmal, ob die Berechtigungen tatsächlich korrekt sind.

chmod 755 my_little_script.sh

Antwort2

Ihr Problem besteht darin, dass Ihr System das Shell-Skript standardmäßig in Ihrem Home-Verzeichnis ausführt, wenn Sie versuchen, es durch Doppelklick auszuführen.

Bei der Ankunft an der Linie

# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $* 

Der DIRSYNCPRO_HOMEOrdner ist nicht der erwartete Ordner, Ihre JAR-Datei wurde nicht gefunden und die Anwendung wird stillschweigend beendet. Ich denke, wenn Sie den Wert fest codieren, DIRSYNPRO_HOMEsollten Sie Ihr Shell-Skript durch Doppelklicken ausführen können.

Antwort3

In Ubuntu gibt es „Terminal“ eigentlich nicht. Bei meiner Installation (9.10) erhalte ich Folgendes:

Das Programm 'Terminal' ist derzeit nicht installiert. Sie können es installieren, indem Sie Folgendes eingeben: sudo apt-get install terminal.app Terminal: Befehl nicht gefunden

Ich bin nicht sicher, ob das bei Ihnen der Fall ist, aber wenn ja, versuchen Sie, die Auswahl von „Termianl“ in „gnome-terminal“ zu ändern.

Antwort4

In der Readme-Datei zu dirsyncpro steht, dass es in allen Nicht-Windows-Betriebssystemen über die Befehlszeile ausgeführt werden muss. Ich habe es vermieden, die JAR-Datei auszuführen, aber es gibt keinen anderen Weg.

verwandte Informationen