Como executar um script no terminal quando dou dois cliques

2

Resumo: como definir Run in Terminal como a ação doubleclick padrão do Nautilus?

Desejo executar um script interativo clicando duas vezes nele. Para interagir com isso, preciso vê-lo funcionar.

Se eu gsettings definir org.gnome.nautilus.preferences executable-text-activation para ask , isso me dará uma escolha; Run in Terminal faz o que eu quero; Run não, desde quando o script precisa me perguntar algo, ele simplesmente trava. No entanto, não quero ter que clicar no Run in Terminal todas as vezes. Eu quero fazer isso por padrão. Eu fiz isso antes de alguma forma.

Eu tentei gsettings set org.gnome.nautilus.preferences executable-text-activation to launch ; no entanto, isso simplesmente faz Run como o padrão; Não vejo uma maneira de torná-lo Run in Terminal por padrão.

Eu também tentei inserir um comando gnome-terminal . Isso abre com sucesso uma janela de terminal (mesmo quando simplesmente Run ); no entanto, de alguma forma eu preciso enviar all os comandos para aquela janela de terminal.

Como alternativa, sei como enviar (apenas) a parte interativa do script para esse terminal, o que funcionaria para mim; no entanto, nesse caso, preciso que o script pare até que a parte interativa termine e, em seguida, retome a execução. Normalmente, isso pode ser feito usando o comando wait ; como é, o comando gnome-terminal parece funcionar como gnome-terminal& , em vez disso, ele renuncia ao controle do script bash assim que é lançado.

Eu li quase 10 duplicatas do tópico Como Eu executo scripts executáveis no Nautilus? (incluindo outros sites), e ainda não consigo encontrar minha resposta. Quaisquer outras soluções alternativas serão apreciadas.

    
por Alex 31.03.2017 / 18:31

3 respostas

2

Não literalmente o que você pediu, ainda é uma opção elegante:

Adicione uma opção de clique com o botão direito do mouse para executar um script selecionado no terminal

  1. Crie um pequeno script:

    #!/bin/bash
    gnome-terminal -e $1 
    
  2. Salve como run_interminal.sh em ~/.local/share/nautilus/scripts . Crie o diretório, se ele não existir.

  3. Torne o script executável.
  4. Faça logout e volte.

É isso. Selecione um script e escolha Scripts - > runinterminal.sh :

Alternativamente; Arrastar / soltar no terminal

Arraste um script (executável) sobre um lançador para que ele seja executado no terminal:

  1. Copie o código abaixo em um arquivo vazio e salve-o em sua área de trabalho como run_script.desktop

    [Desktop Entry]
    Name=Run Script
    Type=Application
    Exec=gnome-terminal -e %u
    Terminal=true
    
  2. Torne-o executável

É isso. Agora, ao arrastar um script executável para o ícone, ele será executado no terminal (gnome-).

Nota importante

Como mencionado, o script run_interminal.sh precisa ser executável para aparecer no menu.
Como está, o script a ser executado também precisa ser executável. run_interminal.sh pode ser facilmente configurado para tornar o script alvo executável ou chamar um intérprete. Se isso for necessário, por favor mencione.

    
por Jacob Vlijm 31.03.2017 / 20:01
0

Esta solução deve funcionar para todos:

  • gerenciadores de arquivos que suportam "ações pessoais configuráveis".

  • gerenciadores de arquivos configurados para abrir arquivos com duplo clique.

  • x emuladores de terminal que possuem opções de execução: "-e" ou "--execute".

  • script que tem permissão para ser executável.

EDITAR

Testado com o gerenciador de arquivos thunar e depois disso, eu instalei o nautilus e agora duplo clique em executar script para ambos.

1- Clique com o botão direito do mouse no seu script

2- Selecione "abrir com"

3- Clique em "abrir com outro aplicativo"

4- Clique em "abrir com um comando"

5- Verifique "use esta ação para este tipo de arquivo"

6- Digite o seguinte comando na área de texto: x-terminal-emulator -e "/bin/bash %f"

7- Clique em Abrir, seu script é executado na janela do terminal.

8- Reinicie seu gerenciador de arquivos

Agora, quando você clicar duas vezes em um script, ele será executado.

    
por user-707 31.03.2017 / 19:25
0

Encontrou a solução curta para a pergunta. Adicionar --disable-factory às opções do gnome-terminal faz com que o terminal termine, antes de continuar o resto do script.

    
por Alex 31.03.2017 / 20:15