[英]Python pxssh sendline string splitting and sending two lines
这是我在这里的第一个问题,而且我远非专业编码员,但我一直在研究,并没有发现任何类似的问题...我在标题中说明了pxssh已经实现,但实际上适用于许多似乎有一些案例。 当我尝试格式化字符串以通过pxssh发送一行时,如果我尝试将片段附加到字符串以生成整行,而不是以正确的顺序附加它们,顺序更改和las片段,则会出现问题出现在字符串的开头。 我将展示我正在尝试格式化的字符串,因为我认为与字符/“有关
SED -i -e “S /。SringInLineIWantReplace。/StringIWantToPutInstead+StringFromFunctionInput1+.StringFromFunctionInput2/” FileIWantToEdit
我的代码看起来像这样我重写错误,很奇怪当我用作输入来获取主机名的函数的输出时,如果只是格式化错误的行,可能是一些我看不到的scape字符或者一些那种魔力?:
from pexpect import pxssh
import getpass
def login(hostname):
try:
s.login (hostname, username, password)
except (pxssh.ExceptionPxssh, e):
print ("pxssh failed on login.")
print (str(e))
def logout():
s.logout()
def MyFunction(StringFromFunctionInput1,StringFromFunctionInput2):
line=("sed -i -e {}{}.{}{}")
completeline=(line.format('"s/.*SringInLineIWantReplace.*/StringIWantToPutInstead',StringFromFunctionInput1,StringFromFunctionInput2,'/" FileIWantToEdit'))
return(completeline)
def GetHostname():
s.sendline ("hostname")
s.prompt()
ComputerName=(((s.before).decode("utf-8")).split("\n"))[1]
return(ComputerName)
username = "youruser"
password = "yourpass"
address="192.168.9.100"
print(address)
s = pxssh.pxssh()
login(address)
input2=str(GetHostname())
print(MyFunction("Hi",input2))
logout()
s.close()
我尝试以多种方式格式化sendline字符串,但总是相同,当我查看目标主机的bash历史时,我看到pxssh如何发送两行。 希望有人可以提供帮助,我相信使用其他代码可以得到相同的结果,但现在我只是好奇这背后是哪种魔法:S
提前致谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.