Pular para o conteúdo

Duvida em Script [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Duvida em Script [RESOLVIDO]

Enviado em 12/03/2015 - 10:04h

Bom dia,

Tenho um script e ele não roda pois dá um erro de fim prematuro do arquivo.
Segue o código:

#!/bin/bash
inicio () {
cat a.txt b.txt > c.txt
cat b.txt c.txt > a.txt
cat c.txt a.txt > b.txt
ls -sh
read
}
inicio()


PS: Isso é um exercício que foi passado em aula, sei que o código é "inutil" a não ser apara didática. rs

Responder tópico

2. Re: Duvida em Script [RESOLVIDO]

Enviado em 12/03/2015 - 10:43h

branks90 escreveu:

Bom dia,

Tenho um script e ele não roda pois dá um erro de fim prematuro do arquivo.
Segue o código:

#!/bin/bash
inicio () {
cat a.txt b.txt > c.txt
cat b.txt c.txt > a.txt
cat c.txt a.txt > b.txt
ls -sh
read
}
inicio()


PS: Isso é um exercício que foi passado em aula, sei que o código é "inutil" a não ser apara didática. rs
na boa.. o que esse script tem que fazer?

só os comandos em si não da pra deduzir..

porque voce nao não concatenou a execução?

tente ser o mais claro em suas solicitaçoes e abordagens didáticas.



3. Re: Duvida em Script [RESOLVIDO]

Enviado em 12/03/2015 - 10:53h


O foco na real é pegar o conteudo do arquivo a.txt e do b.txt e colocar no c.txt e assim sucessivamente.
a questão de concatenar ficou meio perdido para mim, sou BEM iniciante.

4. Re: Duvida em Script

Enviado em 12/03/2015 - 11:03h

O erro é você usar parênteses na hora de invocar a função inicio. Ao contrário da maioria das linguagens que eu conheço, as funções do shell são chamadas sem colocar argumentos entre parênteses, mas simplesmente colocando o nome da função, com eventuais argumentos seguindo-o, separados por espaços.

Se você colocar parênteses, o shell entende que você está (re)definindo a função, e espera que essa definição venha. Como o script acabou sem a definição, o shell lhe deu a mensagem de que chegou ao fim de arquivo prematuramente e inesperadamente.

5. Re: Duvida em Script

Enviado em 12/03/2015 - 12:07h

Obrigado Paulo, era esse o erro sim, mais como faço para que ele fique infinito? existe algo que possa fazer para chamara função inicio? pois manter somente o inicio ao fim do código ele não chama.

6. Re: Duvida em Script [RESOLVIDO]

Enviado em 12/03/2015 - 21:22h

Você quer que o script execute eternamente? Se sim, basta fazer isso:

while [ 1 ];
do
código
done

Para você que é iniciante, recomendo a leitura deste artigo http://www.vivaolinux.com.br/artigo/Algoritmos-em-Shell-Script
_________________________
Wagner F. de Souza
Graduado em Redes de Computadores
"GNU/Linux for human beings."
LPI ID: LPI000297782

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder