
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_HOME
Ordner 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_HOME
sollten 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.