Você não está comparando o que pensa que é, está comparando o literal "ok" com a palavra "false". Em vez disso, você precisa comparar a variável $ok
com false
.
Com esse ajuste, seria parecido com:
ok="false"
while [[ "$ok" = "false" ]]
do
...
done
Acredito que você também terá um erro com cdp=$[$cdp + $dcpd]
, no bash, além disso, a aparência geralmente é:
cdp=$(($cdp + $dcpd))
Uma dica: como a condição do loop em que você estava preso era ok=false
, está claro que o problema está na condição de não mudar conforme o esperado. Este é um daqueles fáceis de ignorar questões que é uma palma da cara depois do fato. Toda vez que eu me deparo com isso, eu vou dar uma volta ou algo para tirar minha mente disso. Mais frequentemente do que não, quando eu volto - a questão é óbvia.