Ceci est ma première question ici, et je suis loin du codeur professionnel, mais j'ai fait des recherches et n'ai pas trouvé de problème similaire à cela ... Je l'ai déclaré dans le titre qui est pxssh realted, mais en fait s'applique à beaucoup de cas otehr semble. Le problème survient lorsque j'essaie de formater une chaîne pour envoyer une ligne via pxssh, si j'essaie d'ajouter des fragments à la chaîne pour faire la ligne complète, au lieu de les ajouter dans le bon ordre, l'ordre change et les fragment apparaît au début de la chaîne. Je vais montrer le genre de chaîne que je suis en train de mettre en forme, parce que je pense est liée au caractère/"Python pxssh sendline fendre la chaîne et envoyer deux lignes
sed -i -e" s /. SringInLineIWantReplace. /StringIWantToPutInstead+StringFromFunctionInput1+.StringFromFunctionInput2/ » FileIWantToEdit
Mon code ressemble à ceci je reformulé pour reproduire l'erreur, il est curieux de voir comment se produit que pour formater correctement la ligne lors de l'utilisation en entrée la sortie de la fonction qui obtenir le hostname, peut-être certains personnages scape que je ne vois pas ou peu de magie de ce genre ?:
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()
J'ai essayé de formater la chaîne sendline de plusieurs façons, mais il arrive toujours la même chose, quand je regarde dans le bash histoire de l'hôte cible, je vois comment pxssh a envoyé deux lignes J'espère que quelqu'un peut aider, je suis sûr qu'il est possible de l'obtenir résultat en utilisant un autre code, mais maintenant je suis juste curieux de savoir quel genre de magie est derrière cela: S
Merci d'avance!
Simple et résolu! Merci beaucoup! Et merci pour les suggestions aussi! Je ne savais pas à propos de cette chose retour chariot, va regarder dans. – lopalcar