¿Cómo puedo iniciar mi aplicación de una manera más conveniente?

9

Soy nuevo en Ubuntu. Tengo una aplicación que abro de la siguiente manera. Escribo en la consola:

cd ~/MyDirectory
./myapp +some arguments

¿Cómo puedo encontrar una solución para poder iniciar mi aplicación sin tener que escribir estos comandos en la consola cada vez? Estoy pensando en un script, como un script de murciélago o .lnk en Windows.

En otras preguntas similares no encontré una solución porque solo se mencionaron y discutieron los scripts. No encontré cómo puedo usar el comando "cd" en otras preguntas, y esta pregunta no es un duplicado de otras que sugiero.

mella
fuente
@steeldriver, no, no encontré la solución a esta pregunta. No hay nada sobre el comando cd y la aplicación en ejecución a través de script.
nick
# 1 ¿ Desea que la solución sea un icono en el que pueda hacer clic en su escritorio, o será esto lo que necesita / desea ejecutar desde el símbolo del sistema? # 2 ¿Con qué frecuencia cambiará el argumento?
RonJohn 01 de
La conversación (de forma segura en este caso) supone que hay un escritorio. Muy a menudo en el mundo de los scripts no habrá.
mckenzm

Respuestas:

21

Un guión es bastante exagerado.

Use un archivo .desktop como:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Guárdalo como some_app.desktop
  • Hazlo ejecutable y haz doble clic

nótese bien

La pregunta es si necesita ejecutarse desde su propio directorio o no. Si no, el comando podría incluso ser más simple:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Jacob Vlijm
fuente
2
De verdad gracias. .desktopEl archivo es suficiente para esta tarea.
nick
2
@allo Si OP solicita una solución, que no es la óptima para su problema, pero no sabe que existe una mejor, debe darle la mejor solución para su problema si la conoce. Si no ve que está perdiendo el punto sobre qué respuesta debería estar aquí.
Jacob Vlijm
1
@dessert Gracias por la edición. Puede que tengamos que lidiar con caminos con espacios :)
Jacob Vlijm
1
Es posible que desee escribir en ./myapp …lugar de solo myapp …porque el directorio actual ., por defecto, no es parte de la variable PATH.
PerlDuck
1
@allo Por favor, siéntase libre de agregar su propia respuesta si cree que las existentes no son suficientes.
Fabby
13

Cree un archivo con el siguiente contenido:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

Luego hazlo ejecutable:

chmod u+x scriptname

Ahora puedes llamar a este script así: /pathtoscript/scriptname

Puede combinar esto con la respuesta de v010dya, y poner este script en cualquiera binque esté en $ PATH, por lo que ambos métodos de llamada son posibles: en el shell en cualquier tipo de directorio scriptnameo use el acceso directo del escritorio explicado a continuación. Simplemente cambie /pathtoscripta la ubicación real del guión.

Haga un acceso directo al script, colóquelo ~/.local/share/applications/y asígnele el nombre somename.desktop con el siguiente contenido:

[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false

Luego aparecerá en la lista de aplicaciones

LeonidMew
fuente
1
Tu respuesta está funcionando, gracias. Pero lo siento mucho, el guión es demasiado difícil, no lo sabía. Y mi respuesta fue concretamente en el guión, pero no en encontrar cualquier forma de solución. Te haré +1.
nick
1

Aunque ya ha encontrado una solución en la que puede hacer doble clic, hay una solución que hace que sea más trivial ejecutarlo desde la línea de comandos:

Paso 1 - Escribe un guión

Esto ya está cubierto por una respuesta de LeonidMew , lo copiaré aquí:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

y entonces

chmod u+x scriptname

Paso 2: facilita la ejecución

Necesita crear un directorio ~/biny hacer que bash busque comandos. Entonces en la terminal escribimos:

mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile

Aquí estoy haciendo todo en la terminal, por supuesto, puede crear un directorio diren su directorio de inicio y también mover su script allí a través de herramientas gráficas con las que se sienta cómodo. También estoy usando vim como editor, pero es un poco difícil de usar para principiantes, le aconsejaría que aprenda, pero puede usar un editor diferente (incluso gráfico) para editar .profiledentro de su directorio de inicio, tenga en cuenta que este archivo está oculto por defecto

Debe agregar lo siguiente al final de ese archivo

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Si está utilizando vim , presiona ipara comenzar a agregar texto y luego Escpara finalizar. Después de eso, ingresa :wqpara escribir el archivo y sale. O, como ya he dicho, use un editor más simple.

Paso 3 - Disfruta

Ahora, no importa en qué directorio se encuentre, siempre puede escribir scriptnamey presionar Enter. También puede colocar otras secuencias de comandos y aplicaciones en las que desea ser ejecutable ~/bin.

v010dya
fuente
1
Escribiste cómo salir de vim, +1 Es broma, buena respuesta. Tu solución es útil. Todavía es posible crear un archivo .desktop, ejecutar un script desde la lista de aplicaciones o el menú (dependiendo de DE). Después de parchear .profile se necesita cerrar sesión / iniciar sesión. También home se puede montar con la opción noexec, en este caso es necesario colocar el script en / usr / local / bin / (usando sudo).
LeonidMew