Atalhos para rotinas em scripts [RESOLVIDO]

1. Atalhos para rotinas em scripts [RESOLVIDO]

Eduardo Borges
eduborgess

(usa Ubuntu)

Enviado em 07/05/2015 - 18:01h

Boa tarde,

Meu nome é Eduardo, eu faço Tecnologia em Redes de Computadores no Centro Universitário do Norte, em Manaus.
Estou frequentando, nesse período, a disciplina de Programação em Shell Script.

Utilizo em dual boot os sistemas Ubuntu 14.10, e Windows 8.1, em um notebook Dell Inspiron 14.
O meu problema é que eu não consigo executar um arquivo .sh.
Quando eu digo executar, quero dizer, abrir o arquivo diretamente no Terminal, dando um duplo clique no mesmo.
Já procurei sobre esse assunto, inclusive aqui no Viva o Linux, e nenhuma das soluções apresentadas funcionou para mim.

1 - O arquivo em questão, apenas para teste está escrito dessa forma:
#!/bin/bash
ping www.google.com

2 - Eu já setei as permissões do arquivo:
$ chmod +x Ping.sh
$ ls -lh Ping.sh
-rwxrwxr-x 1 borges borges 36 Mai 7 16:43 Ping.sh

3 - Já alterei as permissões, nas propriedades do arquivo, marcando a opção:
"Permitir execução do arquivo como um programa"
4 - Já alterei as preferencias de arquivo no "Arquivos" marcando a opção:
"Executar arquivos de texto executáveis quando forem abertos"


  


2. MELHOR RESPOSTA

Gildásio Júnior
gjuniioor

(usa Arch Linux)

Enviado em 08/05/2015 - 03:11h

Sobre clicar no arquivo com duplos cliques e não abrir... Calma, ele abre, só não mostra ^^

Quer uma prova? Abra um terminal, digite o comando:

$ ps -aux | grep Ping.sh 


Provavelmente não vai exibir nada... Feito isso, execute o arquivo com o duplo clique e depois execute o comando no terminal novamente. Vai notar que apareceram processos de execução...

Portanto, a conclusão que chegamos é: você executou o arquivo, só não vê seu resultado. srsrsr

Fazendo alguns testes aqui, consegui encontrar uma solução da seguinte forma... Veja os passos em comandos:

$ cat > /tmp/test.sh
#!/bin/bash
echo "Ok!"
sleep 100
^C
$ chmod a+x /tmp/test.sh
$ cat > ~/Desktop/execute.sh
terminator -x bash /tmp/test.sh
^C
$ chmod a+x ~/Desktop/execute.sh


Depois disso, foi só executar o arquivo ~/Desktop/execute.sh com o duplo clique e funcionou... Abriu uma instância do terminator rodando esse arquivo.

PS: Eu uso o terminator e isso se fez possível por causa dele... Veja qual emulador de terminal você usa e os argumentos que aceite.

"A ignorância não se dá apenas pela falta de conhecimento, mas também pelo desgosto em obtê-lo" - @gjuniioor

3. Re: Atalhos para rotinas em scripts [RESOLVIDO]

Eduardo Borges
eduborgess

(usa Ubuntu)

Enviado em 08/05/2015 - 18:35h


Boa tarde. Obrigado pela resposta.

Lendo a sua resposta eu entendi o que foi feito.
Eu entendi que como exemplo você usou o comando "sleep 100", mas o que ele faz?

E também, você sabe dizer qual o terminal padrão do Ubuntu 14.10? É a versão que eu utilizo.


4. Re: Atalhos para rotinas em scripts [RESOLVIDO]

Gildásio Júnior
gjuniioor

(usa Arch Linux)

Enviado em 08/05/2015 - 23:23h

eduborgess escreveu:

Boa tarde. Obrigado pela resposta.

Lendo a sua resposta eu entendi o que foi feito.
Eu entendi que como exemplo você usou o comando "sleep 100", mas o que ele faz?

E também, você sabe dizer qual o terminal padrão do Ubuntu 14.10? É a versão que eu utilizo.


O sleep ele vai "dormir" por um tempo... No caso 100, seria 100 segundos... Ele vai ficar em espera, por 100 segundos, ou até que eu interrompa. Coloquei isso para depois de exibir a mensagem, ainda ficar o terminal aberto para que pudesse verificar. Como o ping google.com não vai parar até que você interrompa, não precisa do sleep.

Não, não sei :S Faz tempo que usei ubuntu, e não testei essa versão nova. Mas segundo a wiki do Ubunto, é gnome-terminal.

PS: Se seu problema/dúvida foi resolvido, marque o tópico com a tag "resolvido" e marque também a melhor resposta. Isso ajuda na indexação do sistema :D

"A ignorância não se dá apenas pela falta de conhecimento, mas também pelo desgosto em obtê-lo" - @gjuniioor


5. Re: Atalhos para rotinas em scripts [RESOLVIDO]

Eduardo Borges
eduborgess

(usa Ubuntu)

Enviado em 09/05/2015 - 18:19h

gjuniioor escreveu:

[quote]eduborgess escreveu:

Boa tarde. Obrigado pela resposta.

...

PS: Se seu problema/dúvida foi resolvido, marque o tópico com a tag "resolvido" e marque também a melhor resposta. Isso ajuda na indexação do sistema :D

"A ignorância não se dá apenas pela falta de conhecimento, mas também pelo desgosto em obtê-lo" - @gjuniioor



Boa tarde amigo.

Seguindo a sua dica, eu também achei ser possível fazer isso sem precisar de um script para chamar o outro script.
Então eu fiz um teste e criei um script dessa forma:
#!/bin/bash
gnome-terminal -x ping www.google.com.br

Dei as permissões e consegui executar ele de forma direta.

Então, problema resolvido. Obrigado pela ajuda.