DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

1. DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

Heron Willy
hwilly

(usa Ubuntu)

Enviado em 19/09/2013 - 13:14h

Boa tarde a todos.
Estou inciando em shell script, e fazendo alguns exercicios, bem, usando o VI no Ubuntu, elaborei esses dois scripts atravez de um exercicio, no qual o primeiro se refere a mostrar a idade do "usuario" exemplo, se ele é ou não menor de idade, e o outro é referente a um calcudo de IMC.

Segue abaixo os scripts, quando executo o primeiro script me retorna a seguinte mensagem:

./hoje: line 19: syntax error near unexpected token `else'
./hoje: line 19: `else'

E quando executo o segundo:

(standard_in) 1: illegal character: :
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
valor do IMC
./hoje3: line 19: unexpected EOF while looking for matching ``'
./hoje3: line 44: syntax error: unexpected end of file


sei que em ambos os exercicios, o primeiro é referente a sintaxe else, e o segundo referente aos simbolos [``']

Segue os scripts:

#!/bin/bash
echo "DIGITE O ANO DE SEU NASCIMENTO"
read ano
echo "DIGITE O ANO ATUAL"
read atual
subtr=$(($ano-atual))
if [ $subtr -lt 18]
then
if [ $subtr -ge 18]
else
echo "VOCE É MENOR DE IDADE"
echo "VOCE É MAIOR DE IDADE"
fi



-------------------------------------------


#!/bin/bash
echo "entre com sua altura"
read altura
echo "entre com seu peso"
read peso
imc= `echo " scale=1: $peso / ( $altura * $altura )" | bc`

echo "valor do IMC $imc"

decimal= ` echo " $imc" | tr -d \.

if [ $decimal -le 185 ]; then
echo "magro"

elif [ $decimal -gt 185 -a $decimal -le 250 ]; then
echo "peso normal"

elif [ $decimal -gt 250 -a $decimal -le 300 ]; then
echo "peso acima do normal"

elif [ $decimal -gt 300 ]; then
echo "obesidade"


poderiam me orientar como solucionar esse erro?
Obrigado desde ja.




  


2. para você

Mateus De Oliveira Gondim
Crux

(usa CentOS)

Enviado em 19/09/2013 - 13:18h

hwilly escreveu:

Boa tarde a todos.
Estou inciando em shell script, e fazendo alguns exercicios, bem, usando o VI no Ubuntu, elaborei esses dois scripts atravez de um exercicio, no qual o primeiro se refere a mostrar a idade do "usuario" exemplo, se ele é ou não menor de idade, e o outro é referente a um calcudo de IMC.

Segue abaixo os scripts, quando executo o primeiro script me retorna a seguinte mensagem:

./hoje: line 19: syntax error near unexpected token `else'
./hoje: line 19: `else'

E quando executo o segundo:

(standard_in) 1: illegal character: :
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
valor do IMC
./hoje3: line 19: unexpected EOF while looking for matching ``'
./hoje3: line 44: syntax error: unexpected end of file


sei que em ambos os exercicios, o primeiro é referente a sintaxe else, e o segundo referente aos simbolos [``']

Segue os scripts:

#!/bin/bash
echo "DIGITE O ANO DE SEU NASCIMENTO"
read ano
echo "DIGITE O ANO ATUAL"
read atual
subtr=$(($ano-atual))
if [ $subtr -lt 18]
then
if [ $subtr -ge 18]
else
echo "VOCE É MENOR DE IDADE"
echo "VOCE É MAIOR DE IDADE"
fi



-------------------------------------------


#!/bin/bash
echo "entre com sua altura"
read altura
echo "entre com seu peso"
read peso
imc= `echo " scale=1: $peso / ( $altura * $altura )" | bc`

echo "valor do IMC $imc"

decimal= ` echo " $imc" | tr -d \.

if [ $decimal -le 185 ]; then
echo "magro"

elif [ $decimal -gt 185 -a $decimal -le 250 ]; then
echo "peso normal"

elif [ $decimal -gt 250 -a $decimal -le 300 ]; then
echo "peso acima do normal"

elif [ $decimal -gt 300 ]; then
echo "obesidade"


poderiam me orientar como solucionar esse erro?
Obrigado desde ja.



tenho um livro massa se quiser receber me envie se e-mail,este livro é para iniciantes,tenho ele e nem peguei nele :) ainda kk


3. Re: DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

Heron Willy
hwilly

(usa Ubuntu)

Enviado em 19/09/2013 - 13:21h

Opa, conhecimento é sempre bem vindo, :)
heron_willy@hotmail.com
Obrigado Lenfexs.


4. fica online aí que vou mandar

Mateus De Oliveira Gondim
Crux

(usa CentOS)

Enviado em 19/09/2013 - 13:39h

hwilly escreveu:

Opa, conhecimento é sempre bem vindo, :)
heron_willy@hotmail.com
Obrigado Lenfexs.


fica online aí no hotmail !


5. E aí

Mateus De Oliveira Gondim
Crux

(usa CentOS)

Enviado em 19/09/2013 - 14:00h

hwilly escreveu:

Opa, conhecimento é sempre bem vindo, :)
heron_willy@hotmail.com
Obrigado Lenfexs.


pronto cheque seu e-mail que já enviei :>)


6. Re: DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

Heron Willy
hwilly

(usa Ubuntu)

Enviado em 19/09/2013 - 14:31h

Salve, galera.

bem, apos rever aqui, refiz o script do primeiro exercicio, e consegui executa-lo de forma correta.

#!/bin/bash
echo " DIGITE SEU ANO DE NASCIMENTO "
read nascimento
echo " DIGITE O ANO ATUAL "
read atual
idade=$(($atual - $nascimento))
if [ $idade -ge 18 ]
then
echo " sua idade é $idade voce é maior de idade "
else
echo " sua idade é $idade voce é menor de idade "
fi

agora só resta o segundo, vou continuar tentando aqui...



7. Re: DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 19/09/2013 - 15:17h

Sem segredo, vc acertou a lógica, mas errou algumas sintaxes:

Exercicio 1:
 

#!/bin/bash

echo "DIGITE O ANO DE SEU NASCIMENTO"
read ano

echo "DIGITE O ANO ATUAL"
read atual

subtr=$(expr $atual - $ano)

if [ $subtr -lt 18 ]; then

echo "VOCE Ã MENOR DE IDADE"

else

echo "VOCE Ã MAIOR DE IDADE"

fi




Exercicio 2:
 

#!/bin/bash

echo "entre com sua altura"
read altura

echo "entre com seu peso"
read peso

imc=$(echo "scale=1; $peso / ( $altura * $altura)" | bc)

echo "valor do IMC $imc"

decimal=`echo $imc | cut -d. -f1`

if [ $decimal -le 18 ]; then

echo "magro"

elif [ $decimal -gt 18 -a $decimal -le 25 ]; then

echo "peso normal"

elif [ $decimal -gt 25 -a $decimal -le 30 ]; then

echo "peso acima do normal"

elif [ $decimal -gt 30 ]; then

echo "obesidade"

fi






8. Re: DUVIDA SHELL SCRIPT INCIANTE [RESOLVIDO]

Heron Willy
hwilly

(usa Ubuntu)

Enviado em 19/09/2013 - 16:19h

Salve, bem rapaziada apos algumas pesquisas descobri tambem esse site: http://www.shellcheck.net/#

embora seja meio n00b da minha parte, ajuda muito, pois mostrar as sintaxes erradas.
e por fim o script 2:

#!/bin/bash
echo "entre com sua altura"
read altura
echo "entre com seu peso"
read peso
imc=$peso / "$( "$altura * $altura" )"

echo "valor do IMC $imc"

decimal=$imc * 10

if [ $decimal -le 185 ]
then
echo "magro"

elif [ $decimal -gt 185 -a $decimal -le 250 ]
then
echo "peso normal"

elif [ $decimal -gt 250 -a $decimal -le 300 ]
then
echo "peso acima do normal"

elif [ $decimal -gt 300 ]
then
echo "obesidade"

fi

Obrigado a todos pela ajuda, e pelo conteudo passado que inclusive ja baixei.
Boa tarde!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts