我需要通过串行端口将以下命令发送到busybox设备:
SBC1000 > setenv serverip '192.168.128.100'
SBC1000 > setenv fsfile '1k\root.jffs2-128k'
SBC1000 > saveenv
我可以使用反斜杠对第一行的单引号进行转义,而不会出现问题:
cmd = 'setenv serverip \'192.168.128.100\''
我已经尝试了第二行的反斜杠的各种组合,但是无法让1k \ root部分正确地转义。我相信这被解释为回报。我尝试了两次和三次逃生,但均未成功。
我终于偶然发现
cmd = 'setenv fsfile \'1k\\\u0072oot.jffs2-128k\''
在我的字符串中包含\ r(而不是return)。
在我的字符串中是否包含一种更易读的方式来包含\ r(而不是return)模式?
答案 0 :(得分:-1)
解决方案是使用John Szakmeister建议的双引号“”。
我发现命令字符串被传递给基于pexpect-serial的私有类中的函数。
我的猜测是我的字符串被pexpect以贪婪的方式评估。通过使用独特的定界符,可以解决该问题。