TCL期望脚本嵌入python变量

问题描述 投票:-1回答:1

下面是我的python函数,其中我需要在ls-ltr​​命令之后将python变量file_search嵌入到expect脚本内。引号给我噩梦。有什么简单的方法可以处理这些引号并使它更易于理解?

def checkLatencyTime(file_search, corr_check = False, ip = None, passwd = None):
    cmdStr = ""
    return_code = 3
    if ip and passwd:
        for x in range(len(ip)):
            cmd ="/usr/bin/expect -c 'spawn ssh " + ip[x] + " \"/usr/bin/expect -c \'\\\'\'spawn ls -ltr; expect \\\"continue connecting (yes/no)?\\\" { send yes\r}; expect \\\"password: \\\" { send \\\""+passwd[x]+"\r\\\"};interact\'\\\'\'\" ; expect \\\"~]#\\\" { send echo -\r}; expect \"password: \" { send \""+passwd[x]+"\r\"};expect \"~]#\" { send echo -\r};expect \"continue connecting (yes/no)?\" { send yes\r};interact'"

给出了一段代码,我正在尝试与远程服务器建立连接并使用expect在该服务器上执行冗长的管道命令(实际上不是这里给出的ls),检索输出并对其进行处理。

python expect
1个回答
0
投票

我什至无法跟随您的尝试。您正在使用Expect SSH到A并在远程服务器上,请使用Expect执行...“ ls”吗????为什么您认为需要在远程服务器上运行Expect?

我的Python生锈了,但是也许:

cmd = [
    '/usr/bin/expect', 
    '-c', 
    '''
        spawn ssh {0} ls -ltr {1}
        expect {
            "continue connecting" {send "yes\r"; exp_continue}
            "assword:"
        }
        send "{2}\r"
        expect eof
    '''.format(ip[x], file_search", passwd[x])
]
© www.soinside.com 2019 - 2024. All rights reserved.