You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Paramiko单个SSH对象连续执行命令?能否用分号分隔?

使用单个SSH对象执行多条命令的正确方式

当然可以通过分号分隔命令来实现!不过先纠正一下你代码里的小语法问题,再聊聊几种实用的方案:

  • 基础分号写法:你需要把两个命令放在同一个字符串里用分号分隔(分号要在引号内部),正确的代码应该是这样:

    stdout = ssh.exec_command('command1; command2')
    

    这种写法的逻辑是,远程shell会先执行command1,不管它执行成功还是失败,都会接着执行command2。

  • 条件执行写法:如果希望只有command1执行成功后才运行command2,可以用&&代替分号:

    stdout = ssh.exec_command('command1 && command2')
    

    这在需要保证命令执行顺序依赖关系的场景下更实用,避免前序命令出错后继续执行后续操作。

  • 注意事项:

    • 这种方式依赖远程主机的标准shell(比如bash、sh)支持,如果远程端禁用了shell或者使用非标准shell,可能无法正常工作。
    • 两个命令的输出会合并到同一个stdout中,如果需要分别获取每条命令的输出,分开调用exec_command会更清晰:
      # 执行第一条命令并获取输出
      _, stdout1, stderr1 = ssh.exec_command('command1')
      output1 = stdout1.read().decode()
      error1 = stderr1.read().decode()
      
      # 执行第二条命令并获取输出
      _, stdout2, stderr2 = ssh.exec_command('command2')
      output2 = stdout2.read().decode()
      error2 = stderr2.read().decode()
      

内容的提问来源于stack exchange,提问作者Elias Shourosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:11:40