msoliver 
		 
		(usa Debian)
		 
		Enviado em 09/10/2016 - 16:19h 
		marlirodrigues escreveu: 
 
Marcelo se eu fizesse um script com número de 0 a 100 no while para imprimir os pares, dessa forma então estaria correto?  
Preciso entender esses detalhes. 
#!/bin/bash/  
clear 
i=0 
while [ $i <= 100];  do #Use  [ $i -le 100 ] Ou ((i<=100)) 
if  [ $ i %2 ==0] ; faltou o "then" #Use (((i%2)==0)) 
echo "i" 
Faltou o "fi" 
i= $[$i +2]  #ERRADO  
done 
Marli, continua ERRADO.....
O erro começa na 1ª LINHA
#!/bin/bash/ 
Corrigido:
#!/bin/bash 
Errado: [ $i <= 100]
Corrigido: [ $i -le 100 ]
Veja:
     Opções do comando test ou [ 
 Comparação Numérica 
 -lt 	É menor que (LessThan) 
 -gt 	É maior que (GreaterThan) 
 -le 	É menor igual (LessEqual) 
 -ge 	É maior igual (GreaterEqual) 
 -eq 	É igual (EQual) 
 -ne 	É diferente (NotEqual) 
   
Tudo corrigido: Vai de ZERO a CEM e TESTA cada NúMERO 
    #!/bin/bash 
tput clear 
i=0 
while [ $i -le 100 ];do 
sleep 0.25 
if (((i%2)==0));then 
echo "$i:PAR" 
else 
echo "$i:IMPAR" 
fi 
let i++ #Ou i=$((i+1)) 
done 
   
O "if . . . then ... else"
Pode ser substituído por:
(((i%2)==0)) && echo "$i:PAR" || echo "$i:IMPAR" 
Já que " inicia com ZERO e SOMA 2", sempre será PAR, logo, não é necessário testar. . . . 
#!/bin/bash 
tput clear 
i=0 
while [ $i -le 100 ];do 
sleep 0.25 #Pode tirar esse "sleep" 
i=$((i+2)) 
echo "i:$i" 
done   
O mesmo resultado, com o "laço" for . . .  
for ((x=0;x<=100;x=$((x+2))));do echo $x;done  
Att.:
Marcelo Oliver