break
é o que você está procurando.
exit
termina o processo do shell quando chamado. Como você está adquirindo seus scripts de shell, eles são executados dentro do seu shell atual. Isso significa que quando um script de shell originado atingir um exit
, ele terminará seu shell.
break
, por outro lado, simplesmente deixa a estrutura de loop atual, o loop while no seu caso.
Do manual do bash:
break
break [n]
Exit from a for, while, until, or select loop. If n is supplied, the
nth enclosing loop is exited. n must be greater than or equal to 1.
The return status is zero unless n is not greater than or equal to 1.