Dúvida de iniciante

Iniciado por rafael###, 15 de Agosto de 2006, 17:03

tópico anterior - próximo tópico

rafael###

Galera o q tem de errado nisso:

#!/bin/bash
clear
echo -e "###########################################\nCadastro de pessoas feito com shell script\n###########################################"
echo "Qual seu nome?"
read NOME
echo "Qual seu sobrenome?"
read SOBRENOME
cat gravado.rafa | grep $NOME
if [$? -ne 0]
then
echo "Qual sua distro?"
read DISTRO
echo -e "************************">>gravado.rafa
echo -e "Nome : $NOME $SOBRENOME\nDistro : $DISTRO">>gravado.rafa
echo -e "************************\n">>gravado.rafa
clear
echo -e "Dados gravados:\n$NOME $SOBRENOME gosta de $DISTRO"
read
clear
else
cat gravado.rafa | grep $NOME
echo "Qual sua distro?"
read DISTRO
echo -e "************************">>gravado.rafa
echo -e "Nome : $NOME $SOBRENOME\nDistro : $DISTRO">>gravado.rafa
echo -e "************************\n">>gravado.rafa
clear
echo -e "Dados gravados:\n$NOME $SOBRENOME gosta de $DISTRO"
read
clear
else
echo -e "\n*******************\nNome ja cadastrado no arquivo gravado.rafa\n******************"
read
fi



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

rafael###

Fico grato por quem ajudar!!
Vlw



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Lamego

rafael, que tal indicar qual é o erro/problema que você tem quando corre o script ?
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

rafael###

./oi: line 31: syntax error near unexpected token `else'
./oi: line 31: `else'

Ele encrenca no else agora naum sei o q é!

Flw!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Lamego

Por valor cola o script e depois utiliza a opção de marcar codigo "#" do forum, como está actualmente não se consegue perceber o encadeamento dos ifs.
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

rafael###

Vou melhorar e descobrir o q quero logo blz?

se eu fizer isso:


#!/bin/bash
read N
if [$N -ne 0]
then
  echo "Número = a 0"
else
  echo "Número <> de 0"
fi


isso ira retornar isso:

17:33:48|root|#root# ./oi
1
./oi: line 3: [1: command not found
Número <> de 0
17:33:52|root|#root#


Ele sempre dará um erro e jogará o comando descrito no else!
Agora eu queria saber o porque desse erro?
Esse é o erro do mesmo script citado acima o de cadastro!




GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Lamego

rafel,
está faltano espaços no seu if, o operador [ ] tem que ter espaços.
Aqui vai o codigo corrigido.
#!/bin/bash
read N
if [ $N -ne 0 ]
then
  echo "Número = a 0"
else
  echo "Número <> de 0"
fi


Mas ainda tem outro problema no seu codigo, se voce der enter sem numero vai dar erro.
Tem que utilizar o operador para verificar se a string foi fazia para resolver isso...
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

rafael###

Puts cara nem acredito tão fácil assim !!!!

Vlw me ajudou mt!!!!

To aprendendo shell agora sou mt iniciante no assunto desculpa te amolar com dúvidas bestas!!!

Vlw!
T mais!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

nightmare13

será k m podem dar uma ajudinha??...
eu sou iniciado no bash e tenho de fazer uma calculadora numerica
uma mas suas funçoes é calcular o sin

#!/bin/bash
echo "digite o ângulo"
read n4
echo "resultado:"
echo "sin($n4)" |bc -l

ja tentei muitas vezes mas n consigo

fpissarra