Я делаю функцию, которая может читать метаданные текущей песни, воспроизводимой в Spotify. Это программируется на lua, так как это реализация для awesome 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)}\'')
Однако, когда Spotify не работает, я не получаю ожидаемую информацию, и qdbus записывает ошибку в поток stderr. Я хотел использовать тот факт, что qdbus пишет в поток ошибок, чтобы определить неисправность и остановить там программу. (Это также должно обнаруживать любые другие ошибки, не связанные с тем, работает ли Spotify или нет)
Насколько я понимаю, lua popen использует popen3, который может делиться на stdout и stderr. но все мои усилия до сих пор бесплодны, и мой поток ошибок всегда пуст. Можно ли проверить ненулевое значение в stderr, чтобы определить ошибочный вызов qdbus (или awk)?
Благодарность!