¿Cómo ejecutar un script simplemente haciendo doble clic como archivos .EXE en Windows?

116

¿Cómo puedo hacer que un script bash sea ejecutable haciendo doble clic al igual que los .exearchivos en Windows? Intenté crear un lanzador y asignarle el script , pero hay dos consecuencias:

  1. el terminal parpadea, desaparece y no se hace nada.
  2. debe especificar ejecutar en la terminal para trabajar.

Tengo un script que instala tomcat en una PC sin conexión, incluidas todas las dependencias de tomcat en el script. Necesito hacer que el script funcione haciendo doble clic como Windows, ya que la mayoría de los que usan el script no estarán familiarizados con Ubuntu.

Olvida la explicación anterior. Quiero hacer un script que pueda ejecutarse haciendo doble clic en él, sin usar el terminal. Alguien sabe como?

Comunidad
fuente
Creo que puedes estar escribiendo mal tu archivo de escritorio. ¿Puedes publicar ( literalmente ) el lanzador .desktop que escribiste?
Jjed
Además, ¿has visto esto? askubuntu.com/q/34597/24694
Jjed
El sitio es un lanzador en la que asignará nombre y comando para hacer su idea no es tan grande
3
Muru me avisó de esto, trabajó para mí: askubuntu.com/questions/286621/...
draoi
1
Para su información para futuros visitantes: Nautilus, el administrador de archivos predeterminado en Ubuntu, aparentemente eliminará la capacidad de ejecutar ejecutables en versiones más recientes en 2019 debido a vulnerabilidades. Artículo sobre el tema y el compromiso de código en GitLab con discusión
Sergiy Kolodyazhnyy

Respuestas:

134

Probé esto y funcionó bien. Asegúrese de que su guión comienza con la correcta tinglado , por ejemplo #!/usr/bin/env bash.

Luego sigue estos pasos:

  • Presiona Alt+ F2para ejecutar un comando.
  • Escribe dconf-editory presiona Enter.
  • En dconfg-editor ve a: org ➤ gnome ➤ nautilus ➤ preferences
  • Haga clic en executable-text-activationy desde el menú desplegable seleccione:

    lanzamiento : para lanzar scripts como programas.
    O
    preguntar : para preguntar qué hacer a través de un cuadro de diálogo.

    captura de pantalla

  • Cierre dconf-editor. ¡Eso es!

De forma alternativa, usando terminal: Ejecutar:

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

Nota : El archivo debe ser ejecutable. También es posible que deba cambiar el permiso de archivo. Haga clic derecho y establezca "Permitir ejecutar archivo como programa"

captura de pantalla

Fuente .

stevenmc
fuente
Esto funcionó muy bien. Solo una nota, se accede al "menú desplegable" haciendo clic en el valor que aparece a la derecha de executable-text-activation(el valor predeterminado es display).
ryanjdillon
55
para aquellos que no pueden llamar a la aplicación, primero deben instalarla consudo apt-get install dconf-editor
whale_steward el
1
Esto funciona en todas partes, excepto en el escritorio. ¿Cómo puedo hacer que funcione también en el escritorio? Estoy usando Xubuntu 14.10.
shrx
¿Hay alguna manera de hacer esto en LXDE (para Lubuntu)?
childofsoong
Esto funciona muy bien en slax unix para ver en slax.org el gran sistema Unix que puede arrancar desde una memoria USB.
raddevus
74

En Nautilus (archivos AKA)

  1. Ir a los archivos ( Editar en la Unidad (17.04 o por debajo))> Preferencias> pestaña Comportamiento

    captura de pantalla

  2. Cambiar la configuración para el archivo de texto ejecutable.

    captura de pantalla

Luego
fuente
3
Ahora 'Archivos -> Preferencias'. (17.04)
niry
¡Dulce! El camino a seguir en mi humilde opinión.
codepleb
¿Cómo ver la salida?
Amr Lotfy
10

En Ubuntu y todos los sistemas operativos basados ​​en Unix, afaik, nada está configurado como ejecutable de forma predeterminada. Hay dos formas de hacer esto.

  1. Haga clic derecho en el script o archivo que desea ejecutar. Vaya a Propiedades y luego a la pestaña Permisos. Haga clic en la casilla de verificación que dice Ejecutar.

  2. Abra una Terminal cden el directorio donde se encuentra el archivo. Tipo . Esto configurará el archivo a ejecutar.chmod ugo+x filename

Ahora sus usuarios pueden hacer doble clic en el contenido de sus corazones.

SomKit
fuente
2
Todavía te preguntará qué hacer con ejecutar en terminal o mostrar o ejecutar ... Así que no es lo que necesito
Solo esta respuesta funcionó en Gnome Ubuntu 17.04 para hacer que el archivo de escritorio sea ejecutable
Kunok
Esto es para ejecutar el archivo en la terminal, no haciendo doble clic en él.
DimiDak
8

Creo que falta crear un archivo * .desktop aquí:

$ 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;

Si crea más de un archivo * .desktop para un script, puede crear múltiples configuraciones al pasar diferentes parámetros, lo cual es una forma muy cómoda y fácil de usar.

h0ch5tr4355
fuente
1
Esta es la mejor respuesta para Ubuntu. Tenga en cuenta que es posible que no necesite (¿o probablemente no?) Especificar Terminal=Truey, a Exec=gnome-terminalmenos que esté creando literalmente un acceso directo para un script del que desea ver el resultado dentro de una ventana de terminal ... También tenga en cuenta que puede señalar Iconcualquier cosa personalizada png que tal vez quieras ...
BuvinJ
6

Si está utilizando XFce, puede ejecutar el script en Thunar ejecutando este comando:

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

o usando gui xfce4-settings-editory creando las mismas propiedades.

Corre xfce4-settings-editor, luego ingresa:

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

  • Booleano

  • CIERTO

imagen de xfce4-settings-editor

jcubic
fuente
Aquí sobre cómo lograr el propósito con acciones personalizadas en Thunar (sin volver a habilitar esa característica "arriesgada").
Cipricus
También aquí sobre cómo usar Zenity y obtener una pregunta "¿Editar o ejecutar?"
Cipricus
2

Tienes que comprobar 3 puntos:

  • Configuración de Nautilus / Nemo: https://askubuntu.com/a/286651/301025
  • El archivo de script debe ser ejecutable : https://askubuntu.com/a/275714/301025
  • El sistema de archivos debe permitir la ejecución :

    1. Escribe mountuna consola
    2. Compruebe si su sistema de archivos tiene la noexecbandera
    3. Elimine la noexecbandera editando /etc/fstaby vuelva a montar el sistema modificado (por ejemplo, un reinicio funciona)
sangorys
fuente
1

Cuando cree un inicio en el escritorio para una secuencia de comandos SHEL o lo que sea, en la línea de comandos, no olvide indicar la secuencia de comandos para que se ejecute en segundo plano.

El guión morirá cuando termine su trabajo.

Octávio Filipe Gonçalves
fuente
1
hice eso, pero qué problema es que el terminal simplemente parpadea y no pasa nada
1

Según el umaskvalor defualt, no ha ejecutado permisos para archivos de forma predeterminada y debe cambiar el mod para obtener permisos de ejecución, algo como esto:

chmod u+x filename
Ali Dehghani
fuente
1
Caldo de Ali seguro de que lo hizo su obvia de hacerlo
0

Como complemento a la respuesta sobre Thunar : esa respuesta volvería a habilitar una característica anterior de Thunar para ejecutar scripts con doble clic. Pero esa característica se consideraba un riesgo de seguridad.

Para evitar eso, quizás la solución más elegante es obtener una ventana emergente con una pregunta como "¿Qué quieres con ese archivo: ejecutar o editar?" (similar a lo que tiene en otros administradores de archivos como PCManFM y Nemo) al hacer clic en ese archivo, utilizando Zenity: aquí .


Una alternativa serían las acciones personalizadas , quizás la mejor característica que tiene Thunar.

El comando que utilizo para ejecutar un archivo de texto ejecutable es sh -c %f, para una acción personalizada llamada "Ejecutar / Ejecutar script".

ingrese la descripción de la imagen aquí

Las condiciones de apariencia son simplemente "texto":

ingrese la descripción de la imagen aquí

Se puede usar un comando similar para ejecutar en la terminal un script de este tipo ("Ejecutar en la terminal"), mientras se mantiene abierta la terminal Xfce4:

xfce4-terminal -H -x %f

ingrese la descripción de la imagen aquí

Opcionalmente, y tal vez preferiblemente, para ocultar tales opciones para todos los archivos de texto, excepto los ejecutables, una forma es restringir el uso de apariencia a los .sharchivos (o .pyarchivos si es el caso, etc.), en "Condiciones de apariencia":

ingrese la descripción de la imagen aquí

- antes de renombrar los archivos ejecutables en consecuencia.

cipricus
fuente
-1

Especialmente para Android Studio Puedes seguir mi respuesta original aquí :

Para crear Desktop Launcher:

  • Haga clic en Create Desktop Entry..desde el menú Herramientas .

ingrese la descripción de la imagen aquí

  • Se le pedirá la contraseña, ingrese la contraseña de su inicio de sesión actual.

  • Finalmente se mostrará una notificación en la pantalla de Android Studio como:

ingrese la descripción de la imagen aquí

  • Puede ver en Aplicaciones => Programación => Android Studio , y puede ver en el escritorio también después de reiniciar el sistema.

Gracias. :)

Pratik Butani
fuente