exec
substitui o shell por um programa, invocando-o com os argumentos fornecidos. O shell vê 2 tokens: "exec" e "alguns / caminho / script.sh arg1 arg2; alguns / caminho / script2.sh arg1 arg2;". O segundo argumento é interpretado como um caminho para um programa a ser executado, incluindo todos os espaços e ponto e vírgula. Apenas um shell sabe dividir os argumentos no espaço em branco e separar os comandos em um ponto-e-vírgula. Portanto, você deve substituir o exec
por uma chamada para um shell, como sh -c "$ssh_command"
.