如何在 bash 中不从 omxplayer 获取默认输出

如何在 bash 中不从 omxplayer 获取默认输出

我正在使用shell,并且每次检测到运动时bash都会使用 Python 的 os.system() 来播放 wav 文件。omxplayer我已经可以在每次检测到运动时打印它"Beep",但是 omxplayer 每次运行时也会有一个默认输出,这会堵塞我的日志,即

Audio codec pcm_s16le channels 1 samplerate 44100 bitspersample 16
Subtitle count: 0, state: off, index: 1, delay: 0
have a nice day ;)

pr=放置声音的python代码是

import os
import time
from gpiozero import MotionSensor
while True:
    if MotionSensor(4).motion_detected:
        os.system("omxplayer beep-06.wav")
        print("Beep!")
        time.sleep(1)

我怎样才能让 omxplayer 不输出此消息而只是输出print("Beep!")?我之所以使用它,nohup python3 alarm.py > alarm.out 2>&1是因为它会在一夜之间运行,并且我通过 SSH 执行此操作,并将输出重定向到alarm.out运行 Raspbian 的 Raspberry Pi 3 B+ 上命名的文件(如果重要的话)。提前致谢!

答案1

如果您不想查看命令的输出,只需将其标准错误和标准输出重定向到/dev/null

    os.system("omxplayer beep-06.wav >/dev/null 2>&1")

这会将输出和错误发送到/dev/null,但你永远不会看到它们。

相关内容