Eu acredito que o problema que você está enfrentando é que você está esperando que a variável global $workspaces
seja definida como resultado dessa função. No entanto, você não pode definir uma variável global (em termos de shell, export
) no shell atual de uma subshell. E a única maneira de executar um comando em segundo plano é executá-lo em uma subcamada. Portanto, executar declare
ou export
como parte de um comando de segundo plano não definirá essa variável no shell atual, o que parece ser o que você está tentando alcançar.