如何从bash脚本打开所有Konsole选项卡的主目录?

时间:2019-01-17 01:58:23

标签: bash debian

我正在使用Debian 9,需要运行一个脚本,该脚本具有将所有打开的终端实例设置在主目录中的功能。

1 个答案:

答案 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提示,而不是在运行其他命令的过程中。