Я пытаюсь написать bash-скрипт, который запустит программу (konsole) и отправит ей сообщения dbus.Вот мой эксперимент
konsole &
echo pid is $!
ps aux | grep konsole
qdbus | grep konsole
Это выводит
pid is 2726
me 2726 0.0 0.4 45404 9952 pts/0 S+ 14:59 0:00 konsole
org.kde.konsole-2729
Имя службы qdbus всегда org.kde.konsole-{pid+epsilon}
, но часть epsilon непредсказуема.
В моем скрипте bashкак мне получить точное имя службы qdbus для конкретного экземпляра konsole, который я только что породил?
Вот неприятное, хакерское решение
qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/before
konsole &
sleep 1
qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/after
N=`sort /tmp/before /tmp/after | uniq -u`
, но, несомненно, есть лучший способ!