[英]os.system() and subprocess.Popen() kill escape sequences in Python
我使用libtmux,而libtmux使用subprocess.Popen()调用Tmux来控制会话,窗口和窗格。 要设置窗格标题,Tmux需要发送转义序列。 这可以按预期在命令行上运行:
tmux send-keys -t 0 " printf '\033]2;%s\033\\' 'Pane Title'" C-m
当此命令由subprocess.Popen()或os.system()发出时-可能也是其他命令,我只测试了这两个-转义序列不能传递给shell。 我记录了发送到文件的命令,并且日志文件中的值正确,但是仅发送时,该命令仍然有效:
printf '2;%s' 'Pane Title'
我已经通过执行以下命令对此进行了测试:
echo "printf '\033]2;%s\033\\' 'Pane Title'" > /tmp/setname
/ tmp / setname的内容如上所述。
最后使用的方法是tmux_cmd ,我通过send_keys这样调用它:
p.send_keys("printf '\033]2;%s\033\\' '" + names[i] + "'")
其中“ p”是窗格对象。 在这里查看我的帖子。
我的问题是:如何在Python中使用转义序列发出shell命令?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.