gpt4 book ai didi

linux - 通过 dbus 将 Ctrl-L 发送到终端仿真器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:00 24 4
gpt4 key购买 nike

可以通过 dbus 将文本发送到终端仿真器 konsole,如下所示:

qdbus org.kde.konsole /Sessions/1 sendText "hello"

但是我想远程清空指定终端窗口的屏幕。所以我尝试了:

qdbus org.kde.konsole /Sessions/1 runCommand "clear"

部分是我想要的。唯一的问题:当进程正在运行时,屏幕不会被清除。

在终端模拟器中,在这种情况下,组合键“Ctrl + L”可以完成这项工作。

所以我正在尝试为此快捷方式发送一个带有转义字符的字符串。这行得通吗?然而,这不行;

qdbus org.kde.konsole /Sessions/1 sendText "\033[2J"

(都没有运行命令)

最佳答案

这对我有用:

qdbus org.kde.konsole /Sessions/1 sendText $'\014'

首先,要从其八进制代码生成一个字符,语法 "\033" 在 C 中有效,但在 Bash 中无效。

其次,虽然“ESC [ 2 J”是用于删除屏幕的 VT100 代码,但它仅在我 echo $'\033[2J' 时对我有用,如果命令正在运行。

第三,如果程序需要来自终端的输入(如 irbpython),Ctrl-L 将起作用,但它不适用于 sleep 时 1;做 echo 仍在运行;完成循环。

关于linux - 通过 dbus 将 Ctrl-L 发送到终端仿真器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com