我正在使用Debian 9,需要运行一个脚本,该脚本具有将所有打开的终端实例设置在主目录中的功能。
答案 0 :(得分:3)
这可以通过DBUS完成,例如:
for service in `qdbus | grep org.kde.konsole-`; do
for session in `qdbus $service | grep ^/Sessions/`; do
qdbus $service $session org.kde.konsole.Session.runCommand "cd"
done
done
这将找到所有“服务”(Konsole进程),然后找到每个服务的所有会话,然后将命令/字符“ cd”发送到所有这些会话。
如果只想发送到特定的konsole进程,则需要替换第一个for
循环。
还要注意,即使会话正在ssh到远程服务器上运行,这也将起作用。 runCommand()方法所做的只是向会话发送字符。但这也意味着会话需要具有准备好接受命令的shell提示,而不是在运行其他命令的过程中。