如何隐藏来自 dbus-send(打印回复)的响应?

Posted

技术标签:

【中文标题】如何隐藏来自 dbus-send(打印回复)的响应?【英文标题】:How to hide response from dbus-send (print-reply)? 【发布时间】:2020-08-13 19:48:29 【问题描述】:

我有以下脚本用于在 spotify 上播放/暂停当前歌曲。但是,它将输出打印到终端。当我删除 --print-reply \ 部分时,尽管文档显示它是可选的,但它不起作用。如何隐藏此命令的响应?

dbus-send \
    --print-reply \
    --dest=org.mpris.MediaPlayer2.spotify \
    /org/mpris/MediaPlayer2 \
    org.mpris.MediaPlayer2.Player.PlayPause

示例输出:

method return time=1588176965.415166 sender=:1.189 -> destination=:1.193 serial=42 reply_serial=2

【问题讨论】:

【参考方案1】:

将所有输出重定向到 /dev/null:

<dbus-send etc> 2>/dev/null

或者,如果您仍想查看任何错误,请使用:

<dbus-send etc> 1>/dev/null

完整命令:

dbus-send \
    --print-reply \
    --dest=org.mpris.MediaPlayer2.spotify \
    /org/mpris/MediaPlayer2 \
    org.mpris.MediaPlayer2.Player.PlayPause 1>/dev/null

【讨论】:

该方法有效,但我仍然需要将--print-reply 添加到命令中,这很奇怪。没有那部分命令不起作用。 我对 dbus-send 一无所知。建议您联系维护人员以获取您特定问题的答案。 gitlab.freedesktop.org/dbus/dbus @Jsowa 你有没有发现为什么你需要使用回复? @deed02392 不,我没有

以上是关于如何隐藏来自 dbus-send(打印回复)的响应?的主要内容,如果未能解决你的问题,请参考以下文章

在发出 dbus-send 命令后,如何使用 C 调用方法?

如何打印来自发布请求的响应

Swifty JSON 响应解析

dbus-send to QDBus 程序示例

如何解决`curl:(52)从localhost上的服务器响应的空回复?

如何通过 dbus-send 发送方法调用?