我需要像这样将复杂的字符串传递到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参数中,但是由于在""" """
字符之间缺少空格,因此我看不到它的可能性。串。也许我错了
还有其他方法可以用来完成这项工作吗?