A função sai, mas o conjunto de shell subiu um pipe
da função para o código que lê stdout
da função e depois coloca o resultado na variável pidthatwasreturned
.
Este descritor de arquivo stdout
, no entanto, é mantido aberto pelo comando sleep
por 60 segundos.
Sua função redireciona a saída para o comando echo, mas não para o comando sleep
e, por esse motivo, a atribuição da variável aguarda até que stdout
do sleep
seja fechado.
Se você trocar &
e > /dev/null
, ele funcionará no Bourne Shell
e deverá funcionar em bash
, a menos que haja um erro em bash
.