当我需要发送的字符串多次包含'和'时,如何在pexpect生成器中使用字符串?

时间:2019-04-07 22:12:21

标签: python linux pexpect

我需要像这样将复杂的字符串传递到pexpect.spawn中:

shell_cmd = '/mnt/ssd-primary/go/bin/grpcurl -plaintext -d \'{"byHash": {"blkHash": "' + blockHash + '"}}\' localhost:14014 iotexapi.APIService.GetBlockMetas | grep "numActions"'

numActions = pexpect.spawn('/bin/bash', ['-c', shell_cmd])

这不起作用,因为pexpect似乎正在接收\并使用命令字符串发送它,而不是\实际上是{{1}的转义字符}。

为解决这个问题,我尝试使用'这样的三引号字符串文字,但这似乎会在运行时自动添加转义字符,因此转义字符再次被传递到pexpect中,从而弄乱了命令。

为了解决这个问题,我试图将整个命令分成几小段以传递到spawn的array参数中,但是由于在""" """字符之间缺少空格,因此我看不到它的可能性。串。也许我错了

还有其他方法可以用来完成这项工作吗?

0 个答案:

没有答案