Daemonio
(usa Slackware)
Enviado em 14/02/2010 - 04:53h
Acho que a linha:
var=`echo "$lista" | grep -w "$SORTEIO"`
não tá tão assustadora assim não porque esse é um jeito comum de usar o grep em uma variável.
Não sei se melhora, mas você pode utilizar Here Strings:
var=`grep -w "$SORTEIO<<<"$lista"`
Fora isso, só fiquei em dúvida na parte do:
carta_numero='CARTA'$SORTEIO
carta_numero2=`eval "echo $carta_numero"`
filtro=`grep -w "$carta_numero2" ./cartas`
Acho que essas três linhas podem ser substituídas por:
filtro=`grep -w "CARTA${SORTEIO}" ./cartas
Fiz uma versãozinha aqui, nem testei ainda =(
Botei o if direto na linha do echo/grep sem precisar de armazenar a saída
em uma variável, e coloquei o redirecionamento logo após o segundo grep.
Dê uma olhada ae e depois diga se funfou:
until [ "$conta" -eq "$numero" ]; do
SORTEIO=$((RANDOM % 40 + 1))
if ! echo "$lista" | grep -w "$SORTEIO"
grep -w "CARTA${SORTEIO}" ./cartas >> ./tmp/baralho
lista="$lista $SORTEIO"
conta=$((conta + 1))
fi
done
Espero ter ajudado.
t+