Hoo*_*ijk 2 lua stderr awesome-wm qdbus popen3
我正在制作一个函数,可以读取 Spotify 中当前播放的歌曲的元数据。这是用 lua 编程的,因为它是很棒的 wm 的实现。我得到了以下行来获取我以后可以使用的所有元数据。
handle = io.popen('qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | awk -F: \'{$1=\"\";$2=\"\";print substr($0,4)}\'')
Run Code Online (Sandbox Code Playgroud)
但是,当 Spotify 未运行时,我无法获得预期的信息,并且 qdbus 会向 stderr 流写入错误。我想利用 qdbus 写入错误流的事实来确定故障并在那里停止程序。(这还应该捕获与 Spotify 是否正在运行无关的任何其他错误)
我的理解是lua popen使用popen3可以在stdout和stderr之间细分。但到目前为止我的所有努力都是徒劳的,我的错误流总是空的。是否可以检查 stderr 中的非 nil 值以确定对 qdbus (或 awk)的错误调用?
谢谢!
我认为你可以在调用中重定向到stderr这样的:stdoutpopen
handle = io.popen("somecommand 2>&1")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3692 次 |
| 最近记录: |