Ao executar o script e acabou imprimindo um monte de linhas com teste e depois deu na ultima linha:
zsh: segmentation fault bash teste.sh
seria um estouro de memoria? não precisei dar um break no script.
Ao executar o script e acabou imprimindo um monte de linhas com teste e depois deu na ultima linha:
zsh: segmentation fault bash teste.sh
seria um estouro de memoria? não precisei dar um break no script.
Olá Delto, tudo bem com você?
Este é um comportamento esperado, o script irá entrar em um loop infinito, imprimindo a linha vazia repetidamente, seguida por muitas linhas com a palavra teste
e, eventualmente, resultando em um erro segmentation fault
devido ao estouro de pilha. Isso ocorre porque cada chamada da função cria um novo frame
na pilha de execução, e como a função chama a si mesma repetidamente sem condição de parada, a pilha fica cheia até esgotar a memória disponível para pilha, resultando em um estouro de memória. Portanto, a alternativa correta do exercício é a letra A.
A título de curiosidade, para que isso não ocorresse, deveríamos adicionar uma condição de parada, como um break
ou uma verificação de algum valor para encerrar o loop.
Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!