Como executar um script clicando duas vezes como arquivos .exe no Windows?

116

Como faço para executar um script bash clicando duas vezes, exatamente como .exenos arquivos do Windows? Tentei criar um iniciador e atribuir o script a ele , mas há duas consequências:

  1. o terminal pisca, desaparece e nada é feito.
  2. você deve especificar para executar no terminal para funcionar.

Eu tenho um script que instala o tomcat em um PC offline, incluindo todas as dependências do tomcat no script. Eu preciso fazer o script funcionar com um clique duplo como o Windows, pois a maioria dos que usam o script não estará familiarizado com o Ubuntu.

Esqueça a explicação acima. Quero criar um script que possa ser executado clicando duas vezes nele, sem usar o terminal. Alguém sabe como?

Comunidade
fonte
Eu acho que você pode apenas estar escrevendo mal o seu arquivo da área de trabalho. Você pode postar ( literalmente ) o iniciador .desktop que você escreveu?
Jjed
Além disso, você já viu isso? askubuntu.com/q/34597/24694
Jjed
Seu apenas um lançador de onde você atribuir nome e comando para fazer a sua ideia não é tão grande
3
Muru me deu a dica para isso, trabalhou para mim: askubuntu.com/questions/286621/...
draoi
1
FYI para futuros visitantes: o Nautilus, o gerenciador de arquivos padrão do Ubuntu, aparentemente removerá a capacidade de executar executáveis ​​em versões mais recentes em 2019 devido a vulnerabilidades. Artigo sobre o tópico e código confirmado no GitLab com discussão
Sergiy Kolodyazhnyy

Respostas:

134

Eu testei isso e funcionou bem. Certifique-se de que seu script comece com o shebang correto , por exemplo #!/usr/bin/env bash.

Em seguida, siga estas etapas:

  • Pressione Alt+ F2para executar um comando.
  • Digite dconf-editore clique Enter.
  • No dconfg-editor, vá para: org ➤ gnome ➤ nautilus ➤ preferences
  • Clique em executable-text-activatione, no menu suspenso, selecione:

    launch : para iniciar scripts como programas.
    OU
    pergunte : para perguntar o que fazer através de uma caixa de diálogo.

    captura de tela

  • Feche o dconf-editor. É isso aí!

Maneira alternativa, usando o terminal: Execute:

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

Nota : O arquivo deve ser executável. Você também pode precisar alterar a permissão do arquivo. Clique com o botão direito e defina "Permitir a execução do arquivo como programa"

captura de tela

Fonte .

stevenmc
fonte
Isso funcionou muito bem. Apenas uma observação, o "menu suspenso" é acessado clicando no valor listado à direita de executable-text-activation(o valor padrão é display).
Ryanjdillon
5
para aqueles que não podem chamar o aplicativo, você precisa instalá-lo primeiro comsudo apt-get install dconf-editor
whale_steward
1
Isso funciona em qualquer lugar, exceto na área de trabalho. Como posso fazê-lo funcionar também na área de trabalho? Estou usando o Xubuntu 14.10.
shrx
Existe uma maneira de fazer isso no LXDE (para Lubuntu)?
childofsoong
Isso funciona muito bem no slax unix para - veja slax.org para o realmente excelente sistema Unix que você pode inicializar a partir de um pen drive.
Raddevus
74

No Nautilus (arquivos AKA)

  1. Vá para Arquivos ( Editar no Unity (17.04 ou abaixo))> Preferências> guia Comportamento

    captura de tela

  2. Altere as configurações do arquivo de texto executável.

    captura de tela

Anon
fonte
3
Agora 'Arquivos -> Preferências'. (17.04)
niry
Doce! O caminho a seguir.
codepleb
Como ver a saída?
Amr Lotfy 29/08/18
10

No Ubuntu e em todos os sistemas operacionais baseados em Unix, afinal, nada é definido como executável por padrão. Há duas maneiras de fazer isso.

  1. Clique com o botão direito do mouse no script ou arquivo que você deseja executar. Vá para Propriedades e depois para a guia Permissões. Clique na caixa de seleção que diz Executar.

  2. Abra um terminal cdno diretório em que o arquivo foi encontrado. Digite . Isso definirá o arquivo a ser executado.chmod ugo+x filename

Agora, seus usuários podem clicar duas vezes no conteúdo de seus corações.

SomKit
fonte
2
Ele ainda irá pedir-lhe o que fazer com run no terminal ou exibição ou correr ... Então, não é o que eu preciso
Somente esta resposta trabalhou em Gnome Ubuntu 17.04 para fazer executeable arquivo do desktop
Kunok
Isto é para executar o arquivo no terminal, não clicando duas vezes nele.
DimiDak 26/03
8

Eu acho que a criação de um arquivo * .desktop está faltando aqui:

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

Se você criar mais de um arquivo * .desktop para um script, poderá criar várias configurações passando parâmetros diferentes, o que é uma maneira muito confortável e fácil de usar.

h0ch5tr4355
fonte
1
Esta é a melhor resposta para o Ubuntu. Observe que você pode não precisar (ou provavelmente não precisa?) Terminal=TrueE, a Exec=gnome-terminalmenos que esteja literalmente criando um atalho para um script do qual deseja ver a saída dentro de uma janela do terminal ... Observe também que pode apontar Iconpara qualquer costume png você pode querer ...
BuvinJ
6

Se você estiver usando o XFce, poderá executar o script no Thunar executando este comando:

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

ou usando gui xfce4-settings-editore criando as mesmas propriedades.

Execute xfce4-settings-editore digite:

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

  • boleano

  • VERDADEIRO

foto do xfce4-settings-editor

jcubic
fonte
Aqui, sobre como atingir o objetivo com ações personalizadas em Thunar (sem reativar esse recurso "arriscado").
cipricus 2/09
Também aqui, sobre como usar o Zenity e obter uma pergunta "Editar ou Executar?"
cipricus 02/09
2

Você tem que verificar 3 pontos:

  • Configuração do Nautilus / Nemo: https://askubuntu.com/a/286651/301025
  • O arquivo de script deve ser executável : https://askubuntu.com/a/275714/301025
  • O sistema de arquivos deve permitir a execução :

    1. Digite mountum console
    2. Verifique se o seu sistema de arquivos tem o noexecsinalizador
    3. Remova o noexecsinalizador editando /etc/fstabe remontando o sistema modificado (por exemplo, uma reinicialização funciona)
sangorys
fonte
1

Quando você cria um lançamento no Desktop para um script SHEL ou o que quer que seja, na linha de comando, não se esqueça de sinalizar o script para ser executado em segundo plano.

O script morrerá quando ele terminar o trabalho.

Octávio Filipe Gonçalves
fonte
1
Eu fiz isso, mas que prob é o terminal apenas brilha e nada acontece #
1

Com base no umaskvalor padrão, você não executa permissões para arquivos por padrão e deve alterar o mod para obter permissões de execução, algo como isto:

chmod u+x filename
Ali Dehghani
fonte
1
Caldo Ali certeza eu fiz isso é óbvio para fazer isso
0

Como complemento à resposta sobre Thunar : essa resposta reativaria um recurso anterior do Thunar para executar scripts em clique duplo. Mas esse recurso foi considerado um risco de segurança.

Para evitar isso, talvez a solução mais elegante seja obter uma janela pop-up com uma pergunta como "O que você deseja com esse arquivo: Executar ou editar?" (semelhante ao que você tem em outros gerenciadores de arquivos como PCManFM e Nemo) ao clicar nesse arquivo - usando o Zenity: aqui .


Uma alternativa seria ações personalizadas , talvez o melhor recurso que Thunar tenha.

O comando que eu uso para executar um arquivo de texto executável é sh -c %f, para uma ação personalizada chamada "Executar / Executar script".

insira a descrição da imagem aqui

As condições de aparência são simplesmente "texto":

insira a descrição da imagem aqui

Um comando semelhante pode ser usado para executar no terminal um script desse tipo ("Executar no terminal"), mantendo o terminal Xfce4 aberto:

xfce4-terminal -H -x %f

insira a descrição da imagem aqui

Opcionalmente, e talvez de preferência, para ocultar essas opções para todos os arquivos de texto, exceto os executáveis, uma maneira é restringir o uso da aparência aos .sharquivos (ou .pyarquivos, se for o caso, etc), em "Condições de aparência":

insira a descrição da imagem aqui

- antes de renomear os arquivos executáveis ​​de acordo.

cipricus
fonte
-1

Especialmente para o Android Studio Você pode seguir minha resposta original aqui :

Para criar o iniciador da área de trabalho:

  • Clique Create Desktop Entry..na partir de Ferramentas menu.

insira a descrição da imagem aqui

  • Será solicitada a senha, digite a senha do seu login atual.

  • Por fim, será exibida uma notificação na tela do Android Studio, como:

insira a descrição da imagem aqui

  • Você pode ver em Aplicativos => Programação => Android Studio e também pode ver na área de trabalho após reiniciar o sistema.

Obrigado. :)

Pratik Butani
fonte