Archivo de texto ejecutable
Resuelto
Buenas noches, comunidad,
Aquí una pregunta que me molesta: cuando hago un archivo de texto ejecutable (en Ubuntu), me solicita una confirmación para la ejecución del script (las opciones son: Ejecutar en una terminal - Mostrar - Cancelar - Ejecutar).
Por lo tanto debo hacer clic en "Ejecutar en una terminal" para que se ejecute el script.
¿Cómo evitar este diálogo de ejecución para que el archivo de texto ejecutable se inicie con un solo clic?
Gracias
Aquí una pregunta que me molesta: cuando hago un archivo de texto ejecutable (en Ubuntu), me solicita una confirmación para la ejecución del script (las opciones son: Ejecutar en una terminal - Mostrar - Cancelar - Ejecutar).
Por lo tanto debo hacer clic en "Ejecutar en una terminal" para que se ejecute el script.
¿Cómo evitar este diálogo de ejecución para que el archivo de texto ejecutable se inicie con un solo clic?
Gracias
1 respuesta
Basta hacer doble clic sobre él y que el archivo tenga permisos de ejecución.
Si lanzas tu script tal cual, los posibles mensajes que se hubiesen mostrado en la consola no se muestran en ningún sitio, pero el script se ejecuta correctamente. Para convencerte, puedes escribir un script pouet.sh que haga algo del tipo:
Lanza este script desde tu explorador de archivos y verás que el archivo pouet.txt se ha creado en tu directorio home.
Si quieres que un script a.sh se inicie en una terminal, hay que escribir un archivo go.sh que inicie una terminal (por ejemplo un xterm) y que llame a pouet.sh en esa terminal (asumiendo que sea posible).
En realidad, es una mala idea porque no puedes garantizar que tu script se ejecute bien en todas las máquinas. Típicamente go.sh invoca un xterm en el que se lanza pouet.sh, go.sh se bloqueará en las máquinas que no tengan instalado xterm. De manera general no puedes garantizar que un usuario tenga instalado tal o cual terminal (si no hay modo gráfico, solo tiene las consolas de modo texto accesibles al pulsar ctrl alt f1 a f6).
En resumen, el problema que intentas resolver no tiene razón de existir a nivel de script; es un problema del usuario. Si quiere ejecutarlo desde su explorador gráfico, corresponde a él ejecutarlo en una terminal o configurar el explorador para que el script se inicie siempre en una terminal (si es posible).
Buena suerte
chmod a+x /la/ruta/al/archivo
Si lanzas tu script tal cual, los posibles mensajes que se hubiesen mostrado en la consola no se muestran en ningún sitio, pero el script se ejecuta correctamente. Para convencerte, puedes escribir un script pouet.sh que haga algo del tipo:
#!/bin/sh echo `date` > ~/pouet.txt
Lanza este script desde tu explorador de archivos y verás que el archivo pouet.txt se ha creado en tu directorio home.
Si quieres que un script a.sh se inicie en una terminal, hay que escribir un archivo go.sh que inicie una terminal (por ejemplo un xterm) y que llame a pouet.sh en esa terminal (asumiendo que sea posible).
En realidad, es una mala idea porque no puedes garantizar que tu script se ejecute bien en todas las máquinas. Típicamente go.sh invoca un xterm en el que se lanza pouet.sh, go.sh se bloqueará en las máquinas que no tengan instalado xterm. De manera general no puedes garantizar que un usuario tenga instalado tal o cual terminal (si no hay modo gráfico, solo tiene las consolas de modo texto accesibles al pulsar ctrl alt f1 a f6).
En resumen, el problema que intentas resolver no tiene razón de existir a nivel de script; es un problema del usuario. Si quiere ejecutarlo desde su explorador gráfico, corresponde a él ejecutarlo en una terminal o configurar el explorador para que el script se inicie siempre en una terminal (si es posible).
Buena suerte