Daemonio
(usa Slackware)
Enviado em 01/05/2010 - 17:50h
Troque o -ne do while por !=, vai funcionar sim. xD
O script roda sem erros mas não faz o que você está querendo. Você lê o número no início mas depois não o atualiza dentro do loop while.
Então se, o usuário digitar 10, o script entrará em loop infinito imprimindo "nao é primo" para sempre.
Tomei a liberdade e alterei seu script de forma que, quando o usuário digitar 0, o script finaliza.
#!/bin/bash
continuar=1
while [ $continuar -ne 0 ]
do
# Leitura direto em num e dentro do loop.
read -p "Entre com o número: " num
# 1 == primo? :S
if [ "$num" -eq 1 -o "$num" -eq 2 ];then
echo "éh primo"
else
for ((i=2;i<$num;i++));do
aux=`echo $(($num%$i))`
if [ "$aux" -eq 0 ]; then
echo "não é primo"
break
else
if [ "$i" -eq `echo $(($num-1))` ]; then
echo "primo"
fi
fi
done
fi
read -p "Deseja continuar 1-sim 0-não : " continuar
done
Acho que era isso que você queria.
Espero ter ajudado.
t+