我需要将一个复杂字符串传递到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似乎正在接收\
并用命令字符串发送它,而不是实际用作'
的转义字符的\
为了解决这个问题,我尝试了像这样的三引号字符串文字""" """
,但这似乎会在运行时自动添加转义字符,因此转义字符再次被传递到pexpect中,这会弄乱命令
为了解决这个问题,我尝试将整个命令分成小块传递到spawn的array参数中,但是我不明白这是怎么可能的,因为字符串中的'
字符之间缺少空格。也许我错了
有没有其他方法可以让我用呢
目前没有回答
相关问题 更多 >
编程相关推荐