Dentro de $(...) , stdout (fd 1) é um pipe. Na outra extremidade do pipe, o shell lê a saída e a armazena na variável $result .
Com: $({ blah; } 3>&1) , concluímos que tanto o fd 3 quanto o 1 apontam para esse pipe em blah .
blah é cmd1 | cmd2 . Há cmd1 e cmd2 são iniciados simultaneamente com cmd1 fd 1 apontando para outro canal (aquele para cmd2 ), mas não queremos que ssh output vá para esse canal, queremos que ele vá para o primeiro pipe para que ele possa ser armazenado em $result .
Portanto, temos { ssh >&3; echo "$?"; } | cmd2 , de modo que somente a saída echo vá para o canal até cmd2 . ssh output (fd 1) vai para $result . ssh não precisando de um fd 3, nós o fechamos para ele depois que usamos para definir fd 1 ( 3>&- ).
A entrada de cmd2 (fd 0) é o segundo tubo. Nada está gravando nesse pipe (desde que ssh está gravando no primeiro canal) até que ssh termine e echo mostre o status de saída lá.
Portanto, em cmd2 (sendo o loop until ), o read -t1 está aguardando com o tempo limite até que ssh seja encerrado. Depois disso, read retornará com sucesso com o conteúdo de $? alimentado por echo .