プログラム (konsole) を起動して dbus メッセージを送信する bash スクリプトを作成しようとしています。これが私の実験です
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}
ですが、イプシロンの部分は予測できません。
私の bash スクリプトで、生成したばかりの特定の konsole インスタンスの正確な qdbus サービス名を取得するにはどうすればよいですか?
これは厄介でハッキーなソリューションです
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`
しかし、確かにもっと良い方法があります!