Pase comandos como entrada a otro comando (su, ssh, sh, etc.)
Tengo un script donde necesito iniciar un comando, luego pasar algunos comandos adicionalescomo comandos a ese comando. Lo intenté
su
echo I should be root now:
who am I
exit
echo done.
... pero no funciona: elsu
tiene éxito, pero luego el símbolo del sistema solo me está mirando. Si escriboexit
en el indicador, elecho
ywho am i
¡etc. comience a ejecutar! Y elecho done.
no se ejecuta en absoluto.
Del mismo modo, necesito que esto funcionessh
:
ssh remotehost
# this should run under my account on remotehost
su
## this should run as root on remotehost
whoami
exit
## back
exit
# back
¿Cómo puedo solucionar esto?
Estoy buscando respuestas que resuelvan esto de manera general, y que no sean específicas desu
ossh
en particular. La intención es que esta pregunta se convierta en uncanónico para este patrón particular