Você pode remover o "e" comercial (&): spawn sempre funciona dessa maneira. Há um identificador para cada pipeline gerado armazenado em $ spawn_id global. Você precisa salvá-lo em uma variável separada após cada spawn para poder referenciar cada um com -i flag nos seguintes operadores expect e send . Veja o exemplo relevante na descrição desses operadores em espera (1) .