Передавать команды в качестве входных данных для другой команды (su, ssh, sh и т. Д.)
У меня есть скрипт, где мне нужно запустить команду, а затем передать некоторые дополнительные командыкак команды к этой команде. Я старался
su
echo I should be root now:
who am I
exit
echo done.
... но это не работает:su
удается, но тогда командная строка просто смотрит на меня. Если я наберуexit
по подсказке,echo
а такжеwho am i
и т. д. начать выполнение! Иecho done.
не выполняется вообще.
Точно так же мне нужно для этого работать надssh
:
ssh remotehost
# this should run under my account on remotehost
su
## this should run as root on remotehost
whoami
exit
## back
exit
# back
Как мне это решить?
Я ищу ответы, которые решают это в общих чертах, и которые не являются специфичными дляsu
или жеssh
особенно. Цель состоит в том, чтобы этот вопрос сталканонический для этого конкретного шаблона.