Come eseguire uno script semplicemente facendo doppio clic come file .EXE in Windows?


116

Come posso rendere eseguibile uno script bash facendo doppio clic proprio come i .exefile in Windows? Ho provato a creare un launcher e ad assegnargli lo script , ma ci sono due conseguenze:

  1. il terminale brilla, scompare e non si fa nulla.
  2. è necessario specificare per eseguire nel terminale per funzionare.

Ho uno script che installa tomcat su un PC offline, incluse tutte le dipendenze di tomcat nello script. Devo far funzionare lo script facendo doppio clic come Windows poiché la maggior parte di coloro che usano lo script non avranno familiarità con Ubuntu.

Dimentica la spiegazione sopra. Voglio creare uno script che può essere eseguito facendo doppio clic su di esso, senza utilizzare il terminale. Qualcuno sa come?


Penso che potresti scrivere male il tuo file desktop. Puoi pubblicare (alla lettera ) il programma di avvio .desktop che hai scritto?
Jjed,

Inoltre, hai visto questo? askubuntu.com/q/34597/24694
Jjed

È solo un programma di avvio in cui si assegna il nome e il comando per fare non è quella grande idea

3
muru mi ha fatto notare
draoi

1
Cordiali saluti per i futuri visitatori: Nautilus, il file manager predefinito su Ubuntu, apparentemente rimuoverà la possibilità di eseguire eseguibili nelle versioni più recenti nel 2019 a causa di vulnerabilità. Articolo sull'argomento e codice commesso su GitLab con discussione
Sergiy Kolodyazhnyy

Risposte:


134

Ho provato questo e ha funzionato bene. Assicurati che la tua sceneggiatura inizi con lo shebang corretto , ad es #!/usr/bin/env bash.

Quindi seguire questi passaggi:

  • Premi Alt+ F2per eseguire un comando.
  • Digita dconf-editore premi Enter.
  • In dconfg-editor vai a: org ➤ gnome ➤ nautilus ➤ preferences
  • Fare clic su executable-text-activatione dal menu a discesa selezionare:

    launch : per avviare gli script come programmi.
    O
    chiedi : per chiedere cosa fare tramite una finestra di dialogo.

    immagine dello schermo

  • Chiudi dconf-editor. Questo è tutto!

Modo alternativo, usando il terminale: Esegui:

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

Nota : il file dovrebbe essere eseguibile. Potrebbe anche essere necessario modificare l'autorizzazione del file. Fare clic con il tasto destro e impostare "Consenti esecuzione file come programma"

immagine dello schermo

Fonte .


Questo ha funzionato alla grande. Solo una nota, il "menu a discesa" si raggiunge facendo clic sul valore elencato a destra di executable-text-activation(il valore predefinito è display).
ryanjdillon,

5
per coloro che non possono chiamare l'app, è necessario installarla prima consudo apt-get install dconf-editor
whale_steward

1
Funziona ovunque tranne che sul desktop. Come posso farlo funzionare anche sul desktop? Sto usando Xubuntu 14.10.
Shrx,

C'è un modo per farlo in LXDE (per Lubuntu)?
figlio del

Funziona alla grande con slax unix to - vedi slax.org per l'ottimo sistema Unix che puoi avviare da una chiavetta USB.
Raddevus,

74

Su Nautilus (file AKA)

  1. Vai a File ( Modifica su Unity (17.04 o precedente))> Preferenze> scheda Comportamento

    immagine dello schermo

  2. Modifica le impostazioni per il file di testo eseguibile.

    immagine dello schermo


3
Ora "File -> Preferenze". (17.04)
niry

Dolce! Il modo di andare imho.
codepleb,

Come vedere l'output?
Amr Lotfy,

10

In Ubuntu e in tutti i sistemi operativi basati su Unix, per impostazione predefinita, nulla è impostato come eseguibile per impostazione predefinita. Ci sono due modi per farlo.

  1. Fare clic con il tasto destro sullo script o sul file che si desidera eseguire. Vai su Proprietà quindi sulla scheda Autorizzazioni. Fare clic sulla casella di controllo che dice Esegui.

  2. Aprire un Terminale cdnella directory in cui si trova il file. Tipo . Questo imposterà il file da eseguire.chmod ugo+x filename

Ora i tuoi utenti possono fare doppio clic sul contenuto dei loro cuori.


2
Ti chiederà ancora cosa fare con l'esecuzione nel terminale o la visualizzazione o l'esecuzione ... Quindi non è quello di cui ho bisogno

Solo questa risposta ha funzionato su Gnome Ubuntu 17.04 per rendere eseguibile il file desktop
Kunok,

Questo serve per eseguire il file sul terminale, non facendo doppio clic su di esso.
DimiDak,

8

Penso che qui manchi un file * .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;

Se si crea più di un file * .desktop per uno script, è possibile creare più configurazioni passando parametri diversi, il che è un modo molto comodo e intuitivo.


1
Questa è la migliore risposta per Ubuntu. Si noti che potrebbe non essere necessario (o probabilmente no?) Specificare Terminal=Truee, a Exec=gnome-terminalmeno che non si stia letteralmente creando un collegamento per uno script di cui si desidera vedere l'output all'interno di una finestra del terminale ... Si noti inoltre che è possibile puntare Icona qualsiasi personalizzazione png che potresti desiderare ...
BuvinJ

6

Se stai usando XFce, puoi eseguire lo script in Thunar eseguendo questo comando:

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

o usando gui xfce4-settings-editore creando le stesse proprietà.

Esegui xfce4-settings-editor, quindi inserisci:

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

  • booleano

  • VERO

immagine di xfce4-settings-editor


Ecco come raggiungere lo scopo con azioni personalizzate in Thunar (senza riattivare quella funzione "rischiosa").
cipricus

Anche qui su come usare Zenity e ottenere una domanda "Modifica o Esegui?"
cipricus


1

Quando si crea un avvio in Desktop su uno script SHEL o su qualunque cosa, nella riga di comando, non dimenticare di segnalare lo script, da eseguire in background.

La sceneggiatura morirà quando avrà finito il lavoro.


1
l'ho fatto, ma quale sia il terminale è solo un luccichio e non succede nulla

1

In base al umaskvalore predefinito, non hai eseguito le autorizzazioni per i file per impostazione predefinita e devi modificare mod per ottenere le autorizzazioni di esecuzione, qualcosa del genere:

chmod u+x filename

1
Il brodo Ali è sicuro di averlo fatto, è ovvio farlo

0

A complemento della risposta su Thunar : tale risposta riattiverebbe una funzionalità precedente di Thunar per eseguire script con doppio clic. Ma quella caratteristica era considerata un rischio per la sicurezza.

Per evitarlo, forse la soluzione più elegante è quella di ottenere una finestra pop-up con una domanda come "Cosa vuoi con quel file: esegui o modifica?" (simile a quello che hai in altri file manager come PCManFM e Nemo) quando fai clic su quel file - usando Zenity: qui .


Un'alternativa sarebbero le azioni personalizzate , forse la migliore caratteristica di Thunar.

Il comando che uso per eseguire un file di testo eseguibile è sh -c %f, per un'azione personalizzata denominata "Esegui / Esegui script".

inserisci qui la descrizione dell'immagine

Le condizioni di aspetto sono semplicemente "testo":

inserisci qui la descrizione dell'immagine

Un comando simile può essere usato per eseguire nel terminale uno di questi script ("Esegui nel terminale"), mantenendo aperto il terminale Xfce4:

xfce4-terminal -H -x %f

inserisci qui la descrizione dell'immagine

Opzionalmente, e forse preferibilmente, al fine di nascondere tali opzioni per tutti i file di testo tranne quelli eseguibili, un modo è limitare l'uso dell'aspetto ai .shfile (o ai .pyfile se il caso, ecc.), In "Condizioni di aspetto":

inserisci qui la descrizione dell'immagine

- prima di rinominare i file eseguibili di conseguenza.


-1

Specialmente per Android Studio Puoi seguire la mia risposta originale qui :

Per creare Desktop Launcher:

  • Fai clic su Create Desktop Entry..dal menu Strumenti .

inserisci qui la descrizione dell'immagine

  • Ti verrà richiesta la password, inserisci la password del tuo login attuale.

  • Infine verrà visualizzata la notifica nella schermata di Android Studio come:

inserisci qui la descrizione dell'immagine

  • Puoi vedere in Applicazioni => Programmazione => Android Studio e potresti vederlo sul desktop anche dopo aver riavviato il sistema.

Grazie. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.