Criei um script de shell simples no Ubuntu 24.04.0 LTS e o tornei executável com:
chmod +x myscript.sh
O script tem o shebang correto ( #!/bin/bash
) e funciona bem quando executado no terminal ( ./myscript.sh
). No entanto, quando clico duas vezes no arquivo, em vez de executar, ele abre um terminal com o Vim e exibe o conteúdo do script.
Como faço para corrigir isso? Quero executar o script com clique duplo.
Conteúdo do meu roteiro:
#!/bin/bash
dart /home/rsj/Documents/01_ProfEPT/ProfEPT-disciplinas-eletivas/abreVSCODE.dart
O motivo pelo qual clicar duas vezes no seu
.sh
script o abre no Vim em vez de executá-lo é porque o script é um arquivo de texto. Clicar duas vezes no gerenciador de arquivos abre o arquivo no aplicativo designado para abrir arquivos de texto.Executar um executável apenas clicando duas vezes em um arquivo está obsoleto por motivos de segurança no Ubuntu Desktop e no Gnome Shell. Executáveis sempre precisam ser "instalados" de alguma forma primeiro. Existem algumas possibilidades.
Instale o executável em um diretório que esteja no seu PATH, por exemplo
~/.local/bin
. Em seguida, você pode executar o script digitando seu nome no terminal ou na caixa de diálogo "Executar um comando" (Alt+F2).Você também pode instalar um
.desktop
inicializador. Em seguida, o script pode ser executado a partir de um ícone na visão geral de Aplicativos.Você pode instalar o script como um script Nautilus. Em seguida, ele pode ser iniciado a partir do menu do botão direito de um diretório ou arquivo, tendo o arquivo ou diretório selecionado como argumento.
Você ainda pode configurar o sistema para executar scripts com extensões de arquivo específicas após clicar duas vezes.
.desktop
iniciador que abra seu terminal e execute seu argumento, ou seja, o caminho completo do seu script (exemplo abaixo para o terminalptyxis
):.sh
arquivos eg a esse inicializador.sh
extensão..desktop
inicializador que você criou, neste exemplo, "Executar um script". (Se a entrada não aparecer, tente novamente após sair e entrar novamente).A partir de então, clicar duas vezes em qualquer
.sh
arquivo executável abrirá uma janela de terminal na qual o comando será executado automaticamente.Conforme explicado aqui
Por padrão, os arquivos *.sh são abertos em um editor de texto (Vim ou TextEdit). Para criar um script de shell que será executado no Terminal ao abri-lo, nomeie-o com a extensão "command", por exemplo, arquivo.comando. Por padrão, esses arquivos são enviados ao Terminal, que executará o arquivo como um script de shell.
Você também precisará garantir que o arquivo seja executável, por exemplo:
Sem isso, o Terminal se recusará a executá-lo.