Como posso iniciar meu aplicativo de uma maneira mais conveniente?

9

Eu sou novo no Ubuntu. Eu tenho um aplicativo que eu abro da seguinte maneira. Eu digito no console:

cd ~/MyDirectory
./myapp +some arguments

Como posso encontrar uma solução para poder iniciar meu aplicativo sem digitar esses comandos no console todas as vezes? Estou pensando em um script, como um bat-script ou .lnk no Windows.

Em outras perguntas semelhantes, não encontrei uma solução porque havia apenas alguma menção e discussão sobre scripts. Não encontrei como usar o comando "cd" em outras perguntas, e essa pergunta não é duplicada das outras que sugiro.

usuario
fonte
@ steeldriver, não, não encontrei solução para esta pergunta. não há nada sobre o comando cd e o aplicativo em execução via script.
entalhe
# 1 Do que você deseja que a solução seja um ícone você pode clicar na área de trabalho, ou vai ser algo que você precisa / deseja executar a partir do prompt de comando? # 2 Com que frequência o argumento muda?
RonJohn
A conversa (com segurança neste caso) assume que há uma área de trabalho. Muitas vezes, no mundo dos scripts, não haverá.
Mckenzm

Respostas:

21

Um script é um exagero.

Use um arquivo .desktop como:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Salve como some_app.desktop
  • Torne-o executável e clique duas vezes

NB

A questão é se ele precisa ser executado em seu próprio diretório ou não. Caso contrário, o comando pode ser ainda mais simples:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Jacob Vlijm
fonte
2
Realmente obrigado. .desktoparquivo é suficiente para esta tarefa.
entalhe
2
@allo Se o OP pedir uma solução, que não é a ideal para o seu problema, mas ele não está ciente de que existe uma melhor, você deve dar a ele a melhor solução para o problema, se você conhece uma. Se você não vê que está perdendo o ponto sobre qual resposta deve estar aqui.
Jacob Vlijm 01/04/19
11
@dessert Obrigado pela edição. Nós pode ter que lidar com caminhos com espaços :)
Jacob Vlijm
11
Você pode escrever em ./myapp …vez de apenas myapp …porque o diretório atual,, .por padrão, não faz parte da variável PATH.
PerlDuck
11
@allo Sinta-se à vontade para adicionar sua própria resposta, se você acha que as existentes não são suficientes.
Fab19
13

Crie um arquivo com o seguinte conteúdo:

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

Em seguida, torne-o executável:

chmod u+x scriptname

Agora você pode chamar esse script assim: /pathtoscript/scriptname

Você pode combinar isso com a resposta de v010dya e colocar esse script em qualquer um binque esteja no $ PATH, para que ambos os métodos de chamada sejam possíveis: no shell em qualquer tipo de diretório scriptnameou use o atalho da área de trabalho explicado abaixo. Apenas mude /pathtoscriptpara o posicionamento real do script.

Faça um atalho para o script, coloque-o ~/.local/share/applications/e nomeie-o como somename.desktop com o seguinte conteúdo:

[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

Em seguida, ele aparecerá na lista de aplicativos

LeonidMew
fonte
11
Sua resposta está funcionando, obrigado. Mas realmente sinto muito, o script é muito difícil, eu não sabia disso. E minha resposta foi concretamente escrita, mas não apenas para encontrar uma maneira de solução. Eu vou marcar com você.
entalhe
1

Embora você já tenha encontrado uma solução na qual pode clicar duas vezes, existe uma solução que facilita a execução na linha de comando:

Etapa 1 - Escreva um script

Isso já está coberto por uma resposta do LeonidMew , vou copiá-lo aqui:

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

e depois

chmod u+x scriptname

Etapa 2 - Facilite a execução

Você precisa criar um diretório ~/bine fazer com que o bash procure por comandos. Então, no terminal, escrevemos:

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

Aqui estou fazendo tudo no terminal, é claro que você pode criar um diretório direm seu diretório pessoal e também mover seu script para lá através de ferramentas gráficas com as quais você se sente confortável. Também estou usando o vim como editor, mas é um pouco difícil para iniciantes, recomendo que você aprenda, mas você pode usar um editor diferente (mesmo gráfico) para editar .profiledentro do diretório inicial, observe que este arquivo está oculto por padrão.

Você precisa adicionar o seguinte ao final desse arquivo

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

Se você estiver usando o vim, pressione ipara começar a adicionar texto e depois Escpara finalizar a adição. Depois disso, você entra :wqpara gravar o arquivo e sair. Ou, como eu já disse, use um editor mais simples.

Etapa 3 - Aproveite

Agora, não importa em que diretório você esteja, você sempre pode digitar scriptnamee pressionar Enter. Você também pode colocar outros scripts e aplicativos nos quais deseja executar ~/bin.

v010dya
fonte
11
Você escreveu como sair do vim, +1 Brincadeira, boa resposta. Sua solução é útil. Ainda é possível criar o arquivo .desktop, executar o script da lista ou menu de aplicativos (dependendo da DE). Após o patch, é necessário efetuar logout / login .profile. Também home pode ser montado com a opção noexec, neste caso é necessário colocar o script em / usr / local / bin / (usando o sudo).
precisa saber é o seguinte