我正在尝试编写一个 BASH 脚本,该脚本每次在 dbus-monitor 的输出中找到某个字符串(稍后在帖子中指定的参数)时创建一个时间戳(要写入文件)。我的脚本的主要目的是在歌曲开始在 Spotify 上播放时保存时间(包括毫秒)和日期,因为它利用了通知。
string "Spotify"
每当播放歌曲时,都会输出以下命令。
dbus-monitor --session interface='org.freedesktop.Notifications',member='Notify' | grep 'string "Spotify"'
我的尝试:
search='string "Spotify"'
found=$(dbus-monitor --session interface='org.freedesktop.Notifications',member='Notify' | grep 'string "Spotify"')
while [ ${search} == ${found} ]; do
date -u +%Y%M%d-%H%M%S.%N >> timestamp.txt
done
我假设我的代码功能障碍的原因是 dbus-monitor 连续运行,因此阻止了 while 循环执行。