相关疑难解决方法(0)

将命令作为输入传递给另一个命令(su,ssh,sh等)

我有一个脚本,我需要启动一个命令,然后将一些额外的命令作为命令传递给该命令.我试过了

su
echo I should be root now:
who am I
exit
echo done.
Run Code Online (Sandbox Code Playgroud)

...但它不起作用:su成功,但命令提示符只是盯着我.如果键入exit的提示,echowho 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)

我该如何解决这个问题?

我正在寻找能够以一般方式解决这个问题的答案,这些答案并非特定于sussh特别是.目的是使这个问题成为这种特定模式的规范.

unix ssh bash shell sh

19
推荐指数
3
解决办法
6119
查看次数

从python与bash交互

我一直在玩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)

(显然,它不会那样工作.)这样的事情是可能的,怎么样?

非常感谢

python bash subprocess

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×2

python ×1

sh ×1

shell ×1

ssh ×1

subprocess ×1

unix ×1