Duvida em Script [RESOLVIDO]

1. Duvida em Script [RESOLVIDO]

Andre
branks90

(usa Ubuntu)

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


  


2. Re: Duvida em Script [RESOLVIDO]

Ton Melo
IZhaq_melo

(usa FreeBSD)

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]

Andre
branks90

(usa Ubuntu)

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

Paulo
paulo1205

(usa Ubuntu)

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

Andre
branks90

(usa Ubuntu)

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]

Wagner Souza
wagnerfs

(usa Fedora)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts