【发布时间】:2021-10-23 17:51:47
【问题描述】:
我正在使用pxssh 登录并在远程服务器上发出一些命令。
我的代码如下:
def login(self):
try:
self.connection = pxssh.pxssh()
self.password = getpass.getpass('Password: ')
self.connection.login(self.host, self.username, self.password)
except pxssh.ExceptionPxssh:
raise("Failed to login.")
def send_command(self, command):
try:
self.connection.sendline(command)
print(self.connection.before)
except pxssh.ExceptionPxssh:
print("Failed to execute command.")
def logout(self):
try:
self.connection.logout()
except pxssh.ExceptionPxssh:
print("Failed to logout.")
运行一些命令的输出是:
Downloading Terraform package.
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Unzipping Terraform package
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Cleaning up the terraform_0.11.2_linux_amd64.zip package
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Move Terraform file
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
我想完全删除输出中包含unset 的所有行。是否有任何属性可以做到这一点,或者是否有任何解决方法?
【问题讨论】:
-
如果可以的话可以分享一下详细代码吗?
-
@Sabil:导致我想删除这条额外行的原因是 pexpect 库或 Linux 操作系统。欢迎提出任何建议。