我有一个脚本,我需要启动一个命令,然后将一些额外的命令作为命令传递给该命令.我试过了
su
echo I should be root now:
who am I
exit
echo done.
Run Code Online (Sandbox Code Playgroud)
...但它不起作用: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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我正在寻找能够以一般方式解决这个问题的答案,这些答案并非特定于
su
或ssh
特别是.目的是使这个问题成为这种特定模式的规范.
我一直在玩Python的subprocess
模块,我想用python的bash做一个"交互式会话".我希望能够像在终端仿真器上一样从Python读取bash输出/写入命令.我猜一个代码示例更好地解释了它:
>>> proc = subprocess.Popen(['/bin/bash'])
>>> proc.communicate()
('user@machine:~/','')
>>> proc.communicate('ls\n')
('file1 file2 file3','')
Run Code Online (Sandbox Code Playgroud)
(显然,它不会那样工作.)这样的事情是可能的,怎么样?
非常感谢