Questão Como faço para executar arquivos .sh?


Sempre que eu abro um arquivo .sh, ele abre no gedit em vez do terminal. Não consigo encontrar nenhuma opção semelhante a Clique direito → Abrir com → Outra aplicação ... → terminal.

Como eu abro este arquivo no terminal?


247
2018-05-01 02:39


origem


Esse script tem como objetivo configurar variáveis ​​env para uso posterior? - Rob
Você não deve usar extensões em scripts. Em algum momento no futuro, você poderá descobrir que um idioma diferente é mais adequado para executar a tarefa que seu script atual está realizando. E então você tem um problema. Você mantém o nome antigo, com uma extensão completamente enganosa, ou renomeia, possivelmente tendo que editar muitos lugares onde seu script é usado? - geirha
Você não precisa da extensão do arquivo. É bom ter mas não é necessário. O sistema operacional não olha para a extensão do arquivo. Olha para os dados - ActionParsnip
Meh, se você reescrever foo.sh em ruby, você sempre pode usar o arquivo .sh para iniciar ruby foo.rb - glenn jackman
No Dolphin você pode pressionar F4 e um console é aberto - Motte001


Respostas:


Dê permissão de execução ao seu script:

chmod +x /path/to/yourscript.sh

E para executar seu script:

/path/to/yourscript.sh

Desde a . refere-se ao diretório atual: se yourscript.sh está no diretório atual, você pode simplificar isso para:

./yourscript.sh

379
2018-05-01 03:18



Apenas uma resposta para mostrar a adição de permissões de execução em um único terminal. - Hailwood
Se você fizer bash /path/to/yourscript.sh então você não precisa chmod +x - Aleksandr Levchuk
Na verdade, você pode usar . /path/to/yourscript.sh se o script tiver que configurar algumas variáveis ​​de ambiente. - Rob
Ninguém menciona o tradicional: ./path/to/yourscript.sh(sem o espaço depois .)? Eu acho que um é o mais simples e fácil de usar ... Mas de qualquer maneira, aqui está a minha alternativa que deve fazer quase o mesmo que ./ iria, embora eu não veja porque você não usaria ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) editar FILENAME ao seu gosto. Observe também que sh será usado se não houver alternativa. - MiJyn


Você precisa marcar scripts de shell como executáveis ​​para executá-los a partir do gerenciador de arquivos:

  1. Clique com o botão direito no seu .sh arquivo e selecione Propriedades:

    enter image description here

  2. No Permissões tab, cheque Permitir a execução do arquivo como programa:

    enter image description here

  3. Feche o Propriedades janela e clique duas vezes no arquivo. Uma caixa de diálogo será exibida, oferecendo a opção de executar o script em um terminal:

    enter image description here


72
2018-05-01 03:02



Bom w / screenshots - gd1
Isso não está funcionando no Ubuntu 13.04. Mantém a abertura no gedit de qualquer maneira, nunca me pede para executar. Edit: Nvm, imjustmatthew responde isso. - mpen
Antes de usar isso, precisamos fazer a permissão do arquivo para executar usando chmod. chmod + x nome_do_arquivo.sh ou chmod 755 nome_do_arquivo.sh - Arvind Rawat
Eu não tenho popup! O IDE é aberto imediatamente, não é um pop-up - Green
@ DanielMöller, aqui está a resposta para sua pergunta. askubuntu.com/questions/38661/how-do-i-run-sh-files/… - Akhilesh Dhar Dubey


Pré-requisito

Antes de poder executar o arquivo .sh, você precisa torná-lo executável:

  1. Clique com o botão direito no arquivo
  2. Selecione Propriedades
  3. Selecione Permissões
  4. Selecione Permitir a execução do arquivo como um programa

Atenção

Certifique-se de confiar na fonte de onde você tirou o arquivo. Pode ser um vírus.

A maneira muito simples

  1. Clique duas vezes no arquivo
  2. Clique em executar no terminal

Isso tem problema. O terminal fechará imediatamente e você não poderá ver a saída.

O caminho mais simples

  1. Aplicações Abertas -> Acessórios -> Terminal
  2. Arraste e solte o arquivo .sh no terminal e pressione Enter

A maneira como os profissionais fazem

  1. Aplicações Abertas -> Acessórios -> Terminal
  2. Encontre onde o arquivo .sh

    • Use o ls e cd comandos
    • ls listará os arquivos e pastas no pasta atual. Experimente: digite "ls" e pressione Enter.
    • Depois de ver a pasta em que você deseja entrar, execute cd, seguido por um espaço, seguido por um nome de pasta
    • Se você estiver em uma pasta que não deseja, execute cd .. para ir um nível acima
  3. Execute o arquivo .sh

    • Uma vez que você pode ver por exemplo script1.sh com ls Rode isto:

      ./script.sh

Por que isso é complicado?

O terminal tem um rico conjunto de ferramentas poderosas que são acessíveis digitando os comandos. Profissionais localizam o arquivo .sh digitando ls e cd. Quando estiver no caminho certo pasta atual você pode executar o script assim:

./script1.sh

ou você pode executar e redirecionar a saída para um arquivo:

./script1.sh > out.txt

ou você pode filtrar a saída de palavras-chave (por exemplo, "maçãs") e, em seguida, redirecionar para um arquivo:

./script1.sh | grep apples > ./only-apples

Existem milhares de coisas que você pode fazer para esse arquivo apenas digitando alguns comandos.

Outro, você pode baixar um arquivo da Internet com um simples comando:

wget www.google.com/images/logos/ps_logo2.png

E então abra o arquivo assim:

shotwell ps_logo2.png

22
2018-05-01 02:52



Não tenho certeza de que A maneira como os profissionais fazem está correto, é mais um caso do maneira simples a avançado (para controle de saída) caminho - Hailwood


Abra um terminal e navegue até a pasta onde o .sh arquivo está localizado. Então digite:

sh <name of file>.sh

18
2017-12-20 07:43





No Ubuntu 13.04, os arquivos executáveis ​​abertos no Nautilus agora são abertos no gedit por padrão, em vez de solicitar que o usuário os execute. Para ativar o comportamento clássico, você precisa ajustar as preferências:

Nautilus → menu Editar → Preferências → guia Comportamento → Clique no botão próximo a Perguntar a cada vez.


15
2018-06-10 21:41



A pessoa que fez a pergunta está falando sobre o Ubuntu 10.10 - edwin
Obrigado!!! Eu não sei por que eles mudaram isso, não consegui descobrir como executar qualquer coisa. - mpen
Esta é a resposta certa para o ubuntus mais recente. - gaRex
Como você chega ao Nautilus em 15.10? - Yaakov Ainspan


Vá para o diretório onde o .sh arquivo é usando cd. Neste exemplo eu armazenei meu sh arquivo como ~/Desktop/shell_practice/test.sh

primeiro faça pwd para descobrir onde você está e se ele retorna /home/username (Onde username é o seu nome de usuário real), você pode executar

cd Desktop/shell/practice

Se você parece estar em outro lugar, você pode usar o caminho absoluto

cd ~/Desktop/shell/practice

ou

cd $HOME/Desktop/shell/practice

ou até mesmo

cd /home/$USER/Desktop/shell/practice

Todas essas são formas de descrever o mesmo lugar. Depois de chegar ao local do seu script, digite

ls

Se você puder ver o sh arquivo na saída, você pode usar chmod para torná-lo executável. No meu caso, lembre-se, o nome do arquivo é test.sh, então eu correria

chmod u+x test.sh

Agora que estamos no mesmo diretório que o script, temos que especificar para o shell que queremos executar o arquivo, dando a sua localização ./ (o diretório atual seguido por um separador de caminho, para distingui-lo do nome do arquivo). Para executar meu arquivo, eu digitaria:

./test.sh

Se o seu script foi escrito corretamente, ele será executado sem erros ...

Aqui está um exemplo ao vivo: Here is live example


5
2017-12-03 11:14



Isso funcionou para eu instalar o Netbeans no Ubuntu - RuD3B0y
Wb, @ RuD3B0y, eu tentei manter as respostas melhores para noobs, sem conteúdo de alta tecnologia, se você tiver algumas edições você é bem-vindo. - TheExorcist


2 etapas principais.

  1. no terminal, use o gedit para escrever e salvar o script com a extensão ".sh" para a área de trabalho. (mas qualquer editor de texto pode ser usado)

  2. Abra o Nautilus e clique com o botão direito do mouse no arquivo script.sh.

    • em propriedades, marque a caixa "permitir a execução do arquivo .."

    • no menu Nautilus, clique em arquivo, em seguida, preferências e, em seguida, comportamento

    • marque a opção "executar arquivos de texto executáveis ​​quando eles forem abertos".

Agora, quando você clica duas vezes no arquivo na área de trabalho, ele deve ser executado. não há necessidade de . ou ./


3
2017-10-24 14:24





No Ubuntu 16.04 isto é como abri-lo no Terminal:

Vou ao File Manager > Edit > Preferences > Behavior para Executable Text Files e selecione Ask each time.

O problema é que, por padrão, é definido como View Executable Files when they are opened.


2
2017-12-11 19:58





  1. Clique com o botão direito do .sh arquivo e torná-lo executável.

  2. Abra um terminal (Ctrl+Alt+T).

  3. Arrastar o .sh arquivo na janela do terminal e assistir com admiração.


2
2018-06-10 14:09



Bem-vindo ao Ask Ubuntu! Eu recomendo editar esta resposta para expandi-lo com detalhes específicos sobre como fazer o primeiro passo. (Veja também Como escrevo uma boa resposta? para conselhos gerais sobre quais tipos de respostas são consideradas mais valiosas no AskUbuntu.) - David Foerster