rai3mb
(usa Outra)
Enviado em 24/11/2011 - 10:52h
Terceira questão:
#!/bin/bash
# Script que imprime os números impares no intervalo entre 2 números fornecidos
# Por rai3mb
[ -z "$1" -o -z "$2" ] && echo 'Use: $0 [NUM] [NUM]' && exit
PRIMEIRO=$1
SEGUNDO=$2
#verifica se foram digitados apenas números
if ! echo "$PRIMEIRO $SEGUNDO" | egrep -q '^[0-9]+ [0-9]+$'
then
echo 'Informe apenas números' && exit
fi
# verifica se foram informados números onde há intervalo entre eles
[ $PRIMEIRO -eq $((SEGUNDO - 2)) -o $SEGUNDO -eq $((PRIMEIRO - 2)) ] && echo 'sem intervalo entre eles' && exit
# coleta o maior e o menor valor fonecido, sai do script caso sejam iguais
if [ $PRIMEIRO -gt $SEGUNDO ]; then
MAIOR=$PRIMEIRO && MENOR=$SEGUNDO
elif [ $SEGUNDO -gt $PRIMEIRO ]; then
MAIOR=$SEGUNDO && MENOR=$PRIMEIRO
else
echo "$PRIMEIRO é igual a $SEGUNDO, não há intervalo entre eles!"
exit
fi
# imprime apenas os impares, módulo da divisão diferente de 0
VALOR=$((MENOR+1))
while [ $VALOR -lt $MAIOR ]
do
[ $(expr $VALOR % 2) -ne 0 ] && echo $VALOR
VALOR=$((VALOR+1))
done