在过去的几天里,我一直在努力弄清楚为什么 paramiko 发送 \x07 而不是 tab 到远程会话。我使用 paramikos invoke_shell 因为我需要运行几个互连的命令。除了这部分之外,一切正常:
check_export = f'echo -e \"this\tis\tjust a test\" > /tmp/export'
Run Code Online (Sandbox Code Playgroud)
这是简化版本,唯一重要的部分是我需要用制表符分隔单词(仅在某些地方)。print 返回正确的形式:
echo -e "this is just a test" > /tmp/export
Run Code Online (Sandbox Code Playgroud)
但是当我从 paramiko 会话检查 recv() 时,我看到了这个:
b'echo -e "this\x07is\x07just a test" > /tmp/export\r\n[root@server~]# '
Run Code Online (Sandbox Code Playgroud)
因此,文件 /tmp/export 不包含制表符,并且前 3 个单词被挤在一起。我尝试提供文字选项卡,\t,U00000009,但没有任何效果。
我还尝试对字符串执行 .encode() ,但出现错误,指出需要字节,而不是字符串。
我在这里缺少什么?我希望得到一些意见。谢谢