Parece que en this question, la respuesta fue separar las declaraciones con punto y coma. Sin embargo, eso podría volverse engorroso si nos adentramos en scripts complejos con múltiples instrucciones if y cadenas de comillas complejas. Pensaría.¿Maneras alternativas de emitir comandos múltiples en una máquina remota usando SSH?
Imagino que otra alternativa sería simplemente emitir múltiples comandos SSH uno tras otro, pero de nuevo eso sería engorroso, además no estoy configurado para la autenticación de clave pública/privada, así que esto sería pedir muchas contraseñas de veces
Lo que idealmente me gustaría es que sea muy similar a la experiencia de shell interactiva: en un punto del script se pasa a @ the_remote_server y solicita la contraseña, que se ingresa (interactivamente) y luego desde ese punto hasta que su script emita el comando "exit", todos los comandos del script se interpretarán en la máquina remota.
Por supuesto, esto no funciona:
ssh [email protected]
cd some/dir/on/remote/machine
tar -xzf my_tarball.tgz
cd some/other/dir/on/remote
cp -R some_directory somewhere_else
exit
¿Hay otra alternativa? Supongo que podría sacar esa parte directamente de mi script y pegarla en un script en el host remoto. Meh. Ahora estoy manteniendo dos scripts. Además, quiero un pequeño archivo de configuración para guardar los valores predeterminados y otras cosas, y tampoco quiero mantener eso en dos lugares.
¿Hay alguna otra solución?
excepcional. ¡Gracias! –
como su script heredoc se vuelve más complicado (con variables particularmente), querrá citar el delimitador heredoc: '<< 'EOF''. Luego, el heredoc se enviará literalmente a la máquina remota y su shell local no intentará interpretarlo. –