Shell Script [RESOLVIDO]

1. Shell Script [RESOLVIDO]

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 10/02/2009 - 13:45h

Porque a soma nao funciona na linha comentada? e na expressão com essas aspas em italico funciona?

#! /bin/bash
echo "-------------------------------------------'";
n1=50;
n2=100;

#soma=$($n1 * $n2) ; #não funciona
#soma=$n1 * $n2 ; #não funciona
#soma=$[$n1 * $n2] ; #não funciona


soma=`expr $n1 + $n2 ` #funciona blz

echo $soma;

echo "-------------------------------------------'";



  


2. Re: Shell Script [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 10/02/2009 - 14:16h

Pelo simples fato de que linhas que iniciam com comentários, são ignoradas pelo shell. Ex.:

# echo "O shell irá me ingnorar!"
echo "O shell não me ignorou."



3. Re: Shell Script [RESOLVIDO]

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 10/02/2009 - 14:41h

Sim, coloquei comentada de proposito.

O que eu quero saber na verdade é porque o meu shell não aceita nenhuma dessas sitaxes que estão comentadas, sendo que alguns exemplos dessa forma.


4. Re: Shell Script [RESOLVIDO]

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 10/02/2009 - 14:42h

ops, só corrigindo:
"sendo que eu vi alguns exemplos dessa forma"


5. Re: Shell Script [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 10/02/2009 - 14:50h

Ops! Não havia entendido direito a tua pergunta! Desculpe...

Então vamos lá: Para realizar cálculos aritméticos você deve utilizar uma dessas notações:

$((operação))

ou

$[operação]

Ah, essa última notação dificilmente é utilizada atualmente. Portanto alguns 'shell interpreters' não a reconhecem mais!


6. Re: Shell Script [RESOLVIDO]

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 10/02/2009 - 15:04h

Sem problemas...
Foi dessa forma que eu tentei fazer:

soma=$($n1 * $n2) ; #não funciona

e

soma=$[$n1 * $n2] ; #não funciona

é necessário fazer algum typecast?


7. Re: Shell Script [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 10/02/2009 - 15:11h

Como eu disse acima, use parênteses duplos!

soma=$(($n1 * $n2))

E evite utilizar a notação '$[operação]', ela caiu em desuso.




8. Re: Shell Script [RESOLVIDO]

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 10/02/2009 - 15:13h

Agora sim!

Muito Obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts