Autor Tópico: #!/bin/bash - shell script [RESOLVIDO]  (Lida 19861 vezes)

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
#!/bin/bash - shell script [RESOLVIDO]
« Online: 02 de MAR?O de 2007, 09:07 »
Amigos, procurei mas realmente não achei oq preciso, ou pelo menos, parte disso.

Seguinte, preciso fazer em Linux um .bat ( Windows ) aonde consiga determinar várias condições, procurando aqui pelo Fórum e até pelo google, encontrei :

Código: [Selecionar]
#!/bin/bash
cd Desktop/Kore/minha linha de comando1
cd Desktop/Kore/minha linha de comando2

Certo, acredito q essa seja a melhor maneira.

Agora, a execução ficaria assim ?

Código: [Selecionar]
chmod 755 ./meuscript
e executar:

Código: [Selecionar]
./meu_script
Se sim, oq o 755 representa ?

Pra terminar, no movo visual (gráfico) do Kubuntu, quando abro uma seção do Konsole ( shell ) é visualizado uma janela do tipo MS-DOS ( Windows ), e dentro dessa janela é possível a criação de vários Shells, estes ficam como abas na parte inferior da janela.

Pois bem, dentro de um shell script eu consigo em apenas um Konsole abrir váris estância do Shell ? assim ficano em diversas abas ?

Exemplo :
Vamos supor q eu execute 5 programas no schel scrip.

Esses 5 programas ficariam em 5 janelas diferentes ou apenas em 1 janela com 5 abas representado os Shells em execução ?

Se falei besteira, me perdõem, estou aprendendo sozinho, como um autodidata, e to vendo o qto é dificil....

Muito Obrigado pela atenção !

Abraços
Junior
« Última modificação: 05 de MAR?O de 2007, 14:31 por jrmontag »

Offline Willdoidao

  • Usuário Ubuntu
  • *
  • Mensagens: 331
  • O que não me mata me deixa mais Forte!!!
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #1 Online: 02 de MAR?O de 2007, 14:15 »
Cara o 755 é as permissões q vc dá ao arquivo:
7 -> leitura,escrita e execussão
5 -> ler e excutar
isso pq funciona assim:
4- ler
2 - gravar
1 - executar
então é só somar para dar a permissão q vc quiser, sobre a outra duvida pelo que entendi o konsole abre varias abas que vc pode ir usando, espero ter ajudado
"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #2 Online: 02 de MAR?O de 2007, 14:38 »
para voce dar permissão de execução ao script faz assi

Código: [Selecionar]
chmod +x meu_script

onde meu_script é o seu script sem ./ ok
depois para executar vc chama ele com

Código: [Selecionar]
./meu_script

Citar
Pois bem, dentro de um shell script eu consigo em apenas um Konsole abrir váris estância do Shell ? assim ficano em diversas abas ?

Exemplo :
Vamos supor q eu execute 5 programas no schel scrip.

Esses 5 programas ficariam em 5 janelas diferentes ou apenas em 1 janela com 5 abas representado os Shells em execução ?

isso eu não entendi direito mas sei o seguinte por exemplo quando voce abre o konqueror pelo shell o shell so continua a execução do script apos fechar o konqueror ok mas ou menos isso

Código: [Selecionar]
#!/bin/bash
echo "Abrindo o konqueror"
konqueror
echo "konqueror fechado"

isso iria mostrar o "Abrindo o konqueror" enquanto o konqueror estiver aberto o proximo comando fica esperando ok assim que voce fecha o konqueror o proximo comando é executado "konqueror fechado", então acho que nao da para voce executar varios programas juntos em seu shell enquanto um programa estiver aberto ele fica esperando voce fechar ok é isso ai ate ++

« Última modificação: 02 de MAR?O de 2007, 14:46 por Diego_Rocha »

arlei

  • Visitante
Re: #!/bin/bash - shell script
« Resposta #3 Online: 02 de MAR?O de 2007, 15:00 »
... então acho que nao da para voce executar varios programas juntos em seu shell enquanto um programa estiver aberto ele fica esperando voce fechar ok é isso ai ate ++

Um programa pode ser executado de duas formas:

   1. Primeiro Plano - Também chamado de foreground. Quando você deve esperar o término da execução de um programa para executar um novo comando. Somente é mostrado o aviso de comando após o término de execução do comando/programa.
   2. Segundo Plano - Também chamado de background. Quando você não precisa esperar o término da execução de um programa para executar um novo comando. Após iniciar um programa em background, é mostrado um número PID (identificação do Processo) e o aviso de comando é novamente mostrado, permitindo o uso normal do sistema.

O programa executado em background continua sendo executado internamente. Após ser concluído, o sistema retorna uma mensagem de pronto acompanhado do número PID do processo que terminou.

Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caracter "&" após o final do comando.

OBS: Mesmo que um usuário execute um programa em segundo plano e saia do sistema, o programa continuará sendo executado até que seja concluído ou finalizado pelo usuário que iniciou a execução (ou pelo usuário root).

T+
Arlei

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #4 Online: 02 de MAR?O de 2007, 15:13 »
Muito bom arlei sinceramente não sabia disso obrigado t++

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #5 Online: 02 de MAR?O de 2007, 16:00 »
Humm, entendi....

Então quer dizer que :

Código: [Selecionar]
#!/bin/bash
cd Desktop/Kore/minha linha de comando1&
cd Desktop/Kore/minha linha de comando2&

Será executado em 2º plano, ou seja, não preciso esperar a execução de 1 pra começar o 2 ?

E sobre minha última dúvida sobre as abas, vou tentar explicar melhor.

Quando abro o Konsole, visualizo uma tela preta, como se fosse o prompt de comando do ms-dos, certo, porém, percebi q nessa janela consigo abrir mais de 1 shell, ou seja, cada shell q eu abro, uma nova aba é aberta para trabalho.

Assim fico com apenas 1 janela aberta, mas com várias abas, cada uma representando um shell aberto.

A minha dúvida é, se eu executar o .sh chamando 5 comandos, os 5 comandos serão abertos na mesma janela mas com 5 abas ou 5 janelas do shell irão de abrir ?

Muito Obrigado a todos ! Estou aprendendo muito aqui no Fórum.

Abraços
Junior
« Última modificação: 02 de MAR?O de 2007, 16:03 por jrmontag »

Offline solanoalves

  • Usuário Ubuntu
  • *
  • Mensagens: 398
  • Arch Linux
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #6 Online: 02 de MAR?O de 2007, 16:07 »
Sim suponho que sejam abertos numa mesma janela

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #7 Online: 02 de MAR?O de 2007, 16:09 »
Não sei se falo besteira mas acho que os comandos por rodar en segundo plano não vai abrir nenhum outro terminal e muito menos abas, não sei se estou certo vc pode testar e ver e a melhor forma ate mais; :D

*testado e confirmado não abre nem outro terminal como tbm nao abre outra aba t++
« Última modificação: 02 de MAR?O de 2007, 16:11 por Diego_Rocha »

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #8 Online: 02 de MAR?O de 2007, 18:47 »
Bom, vamos lá, fiz o seguinte :

criei um arquivo chamado liga.sh com esse conteúdo :

Código: [Selecionar]
#!/bin/bash
echo "Abrindo o konqueror"
konqueror
echo "konqueror fechado"

- Abri o Shell, fui até o Desktop que é aonde está o arquivo.
- Confirmei com ls, o arquivo liga.sh está na pasta
- usei chmod 755 ./liga.sh
- usei chmod +x ./liga.sh
- tentei chamar com ./liga.sh e ./liga

Um erro é gerado :

bad interpreter : No such file or directory

Oq pode ser ?

Obrigado a todos.
« Última modificação: 02 de MAR?O de 2007, 19:01 por jrmontag »

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #9 Online: 02 de MAR?O de 2007, 19:23 »
simplesmente pq vc nao tem o konqueror tem o nautilus muda konqueror para nautilus que vai funcionar
konqueror é do kde e como uso kde usei ele no exemplo perdão porem vc tem gnome entao usa o nautilus é isso ai ate mais;
« Última modificação: 02 de MAR?O de 2007, 19:25 por Diego_Rocha »

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #10 Online: 02 de MAR?O de 2007, 19:40 »
Eu uso KDE, tenho Kubuntu.

Se eu digitar Konqueror no shell funciona normalmente.

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #11 Online: 02 de MAR?O de 2007, 19:59 »
Bom, vamos lá, fiz o seguinte :

criei um arquivo chamado liga.sh com esse conteúdo :

Código: [Selecionar]
#!/bin/bash
echo "Abrindo o konqueror"
konqueror
echo "konqueror fechado"

- Abri o Shell, fui até o Desktop que é aonde está o arquivo.
- Confirmei com ls, o arquivo liga.sh está na pasta
- usei chmod 755 ./liga.sh
- usei chmod +x ./liga.sh
- tentei chamar com ./liga.sh e ./liga

Um erro é gerado :

bad interpreter : No such file or directory

Oq pode ser ?

Obrigado a todos.

Ai cara na hora de dar permissão de execução so faça isso,

Código: [Selecionar]
chmod +x meu_script

sem ultilizar ./ ok como te disse la encima, e depois para executar ai sim coloque ./ assim

Código: [Selecionar]
./meu_script

t++

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #12 Online: 02 de MAR?O de 2007, 20:11 »
Agradeço mto a ajuda, mas ainda nada.

Arquivo lig.sh em Desktop.

- chmod +x lig.sh ( também já tentei com ./lig.sh )
- ./lig.sh ( ja tentei também com espaço, ./ lig.sh )

Erro : bad interpreter: No such file or directory

Conteúdo do arquivo lig.sh

Código: [Selecionar]
#!/bin/bash
echo "Abrindo o konqueror"
konqueror
echo "konqueror fechado"

Lembrando que, konqueror é apenas um teste, com qualquer outro comando também dá a mesma mensagem de erro.

O Arquivo lig.sh está sim no Desktop, confirmo antes com ls.

Obrigado novamente !

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #13 Online: 02 de MAR?O de 2007, 20:18 »
Perdão mas acho que voce nao esta prestando atenção no modo que escrevo, NAO NECESSITA .sh NO FINAL,
olhe os exemplos que te dei acima volto a te mostrar mas preste atenção ok

Código: [Selecionar]

chmod +x liga


e depois para executar

Código: [Selecionar]

./liga


lembrando que voce tem que estar no diretorio onde o script esta se esta em Desktop voce tem que ir em desktop e executar os comando acima ate mais

Offline jrmontag

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: #!/bin/bash - shell script
« Resposta #14 Online: 02 de MAR?O de 2007, 20:51 »
Novamente agradeço, mas ainda nada.

Gerei o arquivo no Desktop, estou dentro do Desktop, confirmo isso com ls

Quando digoto chmod +x liga

Erro : No such file or directory

Mais uma vez Obrigado, estou quase desistindo dos .sh, mas obrigado mesmo assim.