kliknij dwukrotnie, aby uruchomić plik .sh

6

GUI:
Zmieniłem uprawnienia pliku sh, dzięki czemu mogę go czytać, pisać i wykonywać. Dwukrotnie go kliknąłem, zaznaczyłem go w powłoce / terminalu (w zależności od tego, co pojawi się po angielsku), ale nie został uruchomiony. Dwukrotnie go kliknąłem, zaznaczyłem, ale nie został uruchomiony.

Wiersz poleceń:
bash *filename* uruchamia to
sh *filename* uruchamia to

Zawartość pliku to:

#!/bin/bash

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

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

Działa na komputerze tej osoby:

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

Co się dzieje?

Delirium tremens
źródło

Odpowiedzi:

7

Twój test jest błędny, musisz być w stanie go uruchomić bez wcześniejszego wywołania innej powłoki.

./my_little_script.sh

I nie

bash my_little_script.sh

Sprawdź także, czy uprawnienia są poprawne.

chmod 755 my_little_script.sh
Johan
źródło
1

Problem polega na tym, że podczas próby uruchomienia skryptu powłoki przez dwukrotne kliknięcie go, system domyślnie uruchomi go w katalogu domowym.

Po przybyciu na linię

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

The DIRSYNCPRO_HOME folder nie jest folderem, którego oczekujesz, plik jar nie zostanie znaleziony i aplikacja zatrzyma się po cichu. Myślę, że jeśli zakodujesz wartość DIRSYNPRO_HOME powinieneś być w stanie uruchomić swój skrypt powłoki z podwójnym kliknięciem.

haba
źródło
0

W Ubuntu „Terminal” tak naprawdę nie istnieje. Podczas mojej instalacji (9.10) dostaję to:

Program „Terminal” nie jest obecnie zainstalowany. Możesz go zainstalować, wpisując: sudo apt-get install terminal.app Terminal: nie znaleziono polecenia

Nie jestem pewien, czy tak jest w twoim przypadku, ale jeśli próbujesz zmienić zaznaczenie z „Termianl” na „gnome-terminal”.

Bryce
źródło
2
Myślę, że „Terminal” w tym kontekście jest funkcją Gnome / Freedesktop, a nie konkretną aplikacją. podobny do koncepcji wirtualnych pakietów Apta, gnome-terminal i urxvt a inne pakiety „zapewniają” możliwości terminala. moja karmiczna maszyna wirtualna jest obecnie niedostępna, ale myślę, że takie możliwości są zdefiniowane w plikach * .desktop w / usr / share / applications lub podobnych.
quack quixote
Terminal w brazylijskim portugalskim może Shell w amerykańskim angielskim. To tam wpisujesz polecenia Linuksa.
Delirium tremens
1
@ Delirium: nie, powłoka jest czymś innym. terminal wyświetla dane programów wiersza poleceń; powłoka jest tym, co zapewnia i interpretuje wiersz poleceń. gnome-terminal a PuTTY to terminale; bash i tcsh to powłoki. gdzie wpisujesz polecenia linux zazwyczaj zawiera zarówno powłokę, jak i terminal.
quack quixote
Wyszukiwanie google przez podwójne kliknięcie powoduje „Mogłem uruchomić skrypt z terminala”. - linuxforums.org/forum/redhat-fedora-linux-help/… „Wpadłeś w terminal”. - ubuntuforums.org/archive/index.php/t-1107371.html „Jest przeznaczony do użycia przez terminal:” - cerebrux.comli.com/2clickupdate/english-version „jak mogę to zrobić, aby działało w terminalu” - linuxquestions.org/questions/linux-general-1/… Ludzie cały czas korzystają z Terminalu. Jak to się stało?
Delirium tremens
1
@ Delirium: to tylko dwie ściśle ze sobą powiązane, ale wyraźnie różne rzeczy. terminal daje okno do uruchomienia powłoki; powłoka interpretuje twoje polecenie i uruchamia inne programy; terminal wyświetla to, co te programy generują.
quack quixote
0

Readme dirsyncpro mówi, że musi być uruchamiany z linii poleceń we wszystkich systemach operacyjnych innych niż Windows. Unikałem uruchamiania pliku jar, ale nie ma innego sposobu.

Delirium tremens
źródło