2

我使用 python 模块 pysftp 连接到远程服务器。下面你可以看到python代码:

import pysftp
import sys
import sqr_common

srv = pysftp.Connection(host="xxxxxx", username="xxxx",
password="xxxxx")



command  = "/usr/bin/bash"
command2="APSHOME=/all/aps/msc_2012; export APSHOME; "

srv.execute(command)
srv.execute(command2)





srv.close()

问题是命令 /usr/bin/bash 是一个无限进程,所以我的脚本永远不会被执行。谁能帮助我如何在远程服务器上选择 shell,例如 bash 并在远程服务器上的 bash 中执行命令?是否有任何允许我选择 shell 的 pysftp 函数?

4

2 回答 2

1

尝试这个

/usr/bin/bash -c "APSHOME=/all/aps/msc_2012; export APSHOME; "
于 2013-11-29T13:21:31.633 回答
0

这个问题不是 Python 特有的,更像是如何在特定的 shell 下执行命令。

  • 如果您只需要运行单个命令,则可以使用 bash -c 开关运行

    bash -c "echo 123"
    
  • 您可以运行多个命令;分开的

    bash -c "echo 123 ; echo 246"
    
  • 如果您需要在特定 shell 下执行许多命令,请远程创建一个 shell 脚本文件(.bash 文件)并执行它

    bash myscript.bash
    
于 2013-11-29T13:24:39.000 回答