O principal objetivo da programação é send
e expect
pares: você envia algum texto para o processo gerado e espera uma resposta. Nesse caso, você envia o comando mkdir e espera ver seu prompt para saber que o comando foi concluído. Os prompts são melhor correspondidos como expressões regulares para corresponder ao fim dele. Como os prompts são configuráveis, talvez você queira editar a expressão de prompt: essa corresponde a um sinal de dólar literal e a um espaço no final da string.
#!/usr/bin/expect -f
spawn ssh [email protected]
expect "[email protected]'s password:"
send "temppwd\r"
set prompt_re {\$ $}
expect -re $prompt_re
send "mkdir -p emma && cd emma\r"
expect -re $prompt_re
interact