如何在Python中退出bash shell?

2 投票
1 回答
1300 浏览
提问于 2025-04-15 19:56

我正在做一个Python的TCP命令行工具;我想能够通过telnet连接到一个端口,然后它能给我一个命令行提示,比如:

$ telnet localhost 5555
Connected to localhost.
Escape character is '^]'.
$

下面的答案对我帮助很大,让我找到了方向。这里是可以运行的代码。

import SocketServer, os, subprocess
class EchoRequestHandler(SocketServer.BaseRequestHandler ):
    def setup(self):
        print self.client_address, 'connected!'
        self.request.send(str(self.client_address) + '\n')
        self.request.send(os.system('sh'))
    def handle(self):
        data = 'dummy'
        while data:
            data = self.request.recv(1024)
            self.request.send(os.popen(data.strip()).read())
            if data.strip() == 'bye':
                return

    def finish(self):
        print self.client_address, 'disconnected!'
        self.request.send('bye ' + str(self.client_address) + '\n')

server = SocketServer.ThreadingTCPServer(('', 7784), EchoRequestHandler)
server.serve_forever()

1 个回答

9
import os
os.system('sh')  # or bash, tcsh, zsh, whatever. :-P

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答