Jak wykonać skrypt, klikając dwukrotnie pliki .EXE w systemie Windows?


116

Jak mogę zrobić skrypt bash wykonywalny poprzez podwójne kliknięcie podobnie jak .exepliki w systemie Windows? Próbowałem utworzyć program uruchamiający i przypisać mu skrypt , ale istnieją dwie konsekwencje:

  1. terminal migocze, znika i nic się nie dzieje.
  2. musisz określić, aby uruchomić w terminalu, aby działać.

Mam skrypt, który instaluje tomcat na komputerze offline, w tym wszystkie zależności tomcat w skrypcie. Muszę sprawić, by skrypt działał po dwukrotnym kliknięciu jak okno, ponieważ większość osób korzystających ze skryptu nie będzie znała Ubuntu.

Zapomnij o powyższym wyjaśnieniu. Chcę utworzyć skrypt, który można uruchomić, klikając go dwukrotnie, bez użycia terminala. Czy ktoś wie jak?


Myślę, że po prostu źle piszesz plik na pulpicie. Czy możesz opublikować ( dosłownie ) napisany program uruchamiający .desktop?
Jjed


To tylko program uruchamiający, w którym przypisujesz nazwę i polecenie, aby zrobić to niezbyt wielki pomysł

3
muru dał mi do zrozumienia, pracował dla mnie: askubuntu.com/questions/286621/...
draoi

1
Informacje dla przyszłych użytkowników: Nautilus, domyślny menedżer plików w Ubuntu, najwyraźniej usunie możliwość uruchamiania plików wykonywalnych w nowszych wersjach w 2019 r. Z powodu luk w zabezpieczeniach. Artykuł na ten temat i kod zatwierdzenia na GitLab z dyskusją
Sergiy Kolodyazhnyy

Odpowiedzi:


134

Przetestowałem to i działało dobrze. Upewnij się, że skrypt zaczyna się od poprawnego shebang , np #!/usr/bin/env bash.

Następnie wykonaj następujące kroki:

  • Naciśnij Alt+, F2aby uruchomić polecenie.
  • Wpisz dconf-editori naciśnij Enter.
  • W edytorze dconfg przejdź do: org ➤ gnome ➤ nautilus ➤ preferences
  • Kliknij executable-text-activationiz rozwijanego menu wybierz:

    Uruchom : aby uruchomić skrypty jako programy.
    LUB
    zapytaj : zapytać, co zrobić za pomocą okna dialogowego.

    zrzut ekranu

  • Zamknij edytor dconf. Otóż ​​to!

Alternatywny sposób przy użyciu terminala: Uruchom:

gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'

Uwaga : plik powinien być wykonywalny. Może być również konieczna zmiana uprawnień do pliku. Kliknij prawym przyciskiem myszy i ustaw „Zezwalaj na uruchamianie pliku jako programu”

zrzut ekranu

Źródło .


To działało świetnie. Tylko uwaga: „menu rozwijane” jest dostępne po kliknięciu wartości z prawej strony executable-text-activation(wartość domyślna to display).
ryanjdillon,

5
dla tych, którzy nie mogą zadzwonić do aplikacji, musisz ją najpierw zainstalowaćsudo apt-get install dconf-editor
whale_steward

1
Działa to wszędzie oprócz pulpitu. Jak mogę sprawić, by działał również na pulpicie? Używam Xubuntu 14.10.
shrx

Czy jest na to sposób w LXDE (dla Lubuntu)?
childofsoong

Działa to świetnie pod slax unix do - zobacz slax.org, aby zobaczyć naprawdę świetny system uniksowy, który można uruchomić z pendrive'a.
raddevus,

74

Na Nautilus (pliki AKA)

  1. Przejdź do Pliki ( Edycja w Unity (17.04 lub poniżej))> Preferencje> karta Zachowanie

    zrzut ekranu

  2. Zmień ustawienia wykonywalnego pliku tekstowego.

    zrzut ekranu


3
Teraz „Pliki -> Preferencje”. (17.04)
niry

Słodkie! Droga do Imho.
codepleb

Jak zobaczyć wynik?
Amr Lotfy

10

W systemie Ubuntu i wszystkich systemach operacyjnych opartych na Uniksie, afaik, domyślnie nic nie jest ustawione jako wykonywalne. Można to zrobić na dwa sposoby.

  1. Kliknij prawym przyciskiem myszy skrypt lub plik, który chcesz uruchomić. Przejdź do Właściwości, a następnie do karty Uprawnienia. Kliknij pole wyboru z napisem Wykonaj.

  2. Otwórz terminal cdw katalogu, w którym znajduje się plik. Typ . Spowoduje to ustawienie pliku do wykonania.chmod ugo+x filename

Teraz użytkownicy mogą dwukrotnie kliknąć zawartość swoich serc.


2
Nadal będzie Cię pytać, co zrobić z uruchamianiem w terminalu, wyświetlaniem lub uruchamianiem ... Więc to nie jest to, czego potrzebuję

Tylko ta odpowiedź działała na Gnome Ubuntu 17.04, aby plik wykonywalny mógł być wykonywalny
Kunok

Służy do wykonywania pliku na terminalu, a nie poprzez podwójne kliknięcie go.
DimiDak

8

Myślę, że brakuje tutaj pliku * .desktop :

$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;

Jeśli utworzysz więcej niż jeden plik * .desktop dla jednego skryptu, możesz utworzyć wiele konfiguracji , przekazując różne parametry, co jest bardzo wygodnym i przyjaznym dla użytkownika sposobem.


1
To najlepsza odpowiedź dla Ubuntu. Należy pamiętać, że nie mogą (lub prawdopodobnie nie?), Należy określić Terminal=Truei Exec=gnome-terminaljeśli nie jesteś dosłownie tworząc skrót do skryptu, który chcesz zobaczyć dane wyjściowe w oknie terminala ... Należy również pamiętać, że można wskazać Icondo jakiegoś zwyczaju png możesz chcieć ...
BuvinJ

6

Jeśli używasz XFce, możesz wykonać skrypt w Thunar, wykonując następujące polecenie:

xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
             --create --type bool --set true

lub używając GUI xfce4-settings-editori tworząc te same właściwości.

Uruchom xfce4-settings-editor, a następnie wprowadź:

  • /misc-exec-shell-scripts-by-default

  • Boolean

  • PRAWDZIWE

obraz edytora ustawień xfce4


Tutaj, jak osiągnąć cel dzięki niestandardowym działaniom w Thunar (bez ponownego włączenia tej „ryzykownej” funkcji).
Cypr

Również tutaj, jak korzystać z Zenity i uzyskać pytanie „Edycja czy uruchomić?”
Cypr


1

Kiedy tworzysz uruchomienie na pulpicie do skryptu SHEL lub cokolwiek, w wierszu poleceń, nie zapomnij zasygnalizować skryptu, który ma zostać wykonany w tle.

Skrypt umrze, kiedy skończy pracę.


1
Zrobiłem to, ale co to jest terminal, po prostu miga i nic się nie dzieje

1

W oparciu o umaskwartość defualt domyślnie nie wykonujesz uprawnień do plików i musisz zmienić mod, aby uzyskać uprawnienia do wykonywania, coś takiego:

chmod u+x filename

1
Rosół Ali na pewno to zrobiłem, to oczywiste

0

Jako uzupełnienie odpowiedzi na temat Thunar : ta odpowiedź ponownie włącza poprzednią funkcję Thunar do wykonywania skryptów podwójnym kliknięciem. Ale ta funkcja została uznana za zagrożenie bezpieczeństwa.

Aby tego uniknąć, być może najbardziej eleganckim rozwiązaniem jest wyskakujące okienko z pytaniem typu „Co chcesz z tym plikiem: uruchomić lub edytować?” (podobnie do innych menedżerów plików, takich jak PCManFM i Nemo) po kliknięciu tego pliku - za pomocą Zenity: tutaj .


Alternatywą byłyby niestandardowe akcje , być może najlepsza funkcja, jaką ma Thunar.

Polecenie, którego używam do uruchomienia wykonywalnego pliku tekstowego sh -c %f, to niestandardowe działanie o nazwie „Uruchom / Wykonaj skrypt”.

wprowadź opis zdjęcia tutaj

Warunki wyglądu to po prostu „tekst”:

wprowadź opis zdjęcia tutaj

Podobne polecenie może być użyte do uruchomienia takiego skryptu w terminalu („Uruchom w terminalu”), przy zachowaniu otwartego terminalu Xfce4:

xfce4-terminal -H -x %f

wprowadź opis zdjęcia tutaj

Opcjonalnie, a może najlepiej, aby ukryć takie opcje dla wszystkich plików tekstowych z wyjątkiem plików wykonywalnych, sposobem jest ograniczenie użycia wyglądu do .shplików (lub .pyplików, jeśli tak jest w przypadku, itp.), W „Warunkach wyglądu”:

wprowadź opis zdjęcia tutaj

- przed odpowiednią zmianą nazwy plików wykonywalnych.


-1

Specjalnie dla Androida Studio Możesz śledzić moją oryginalną odpowiedź tutaj :

Aby utworzyć Launcher pulpitu:

  • Kliknij Create Desktop Entry..z menu Narzędzia .

wprowadź opis zdjęcia tutaj

  • Zostaniesz poproszony o podanie hasła, wprowadź hasło do bieżącego logowania.

  • Wreszcie będzie wyświetlane powiadomienie na ekranie Android Studio, takie jak:

wprowadź opis zdjęcia tutaj

  • Możesz zobaczyć w Aplikacje => Programowanie => Android Studio , i możesz zobaczyć na pulpicie również po ponownym uruchomieniu systemu.

Dziękuję Ci. :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.