【发布时间】:2021-09-16 08:28:21
【问题描述】:
我正在编写一个小脚本,它查看 spotify 的输出以确定音乐是停止还是重新开始,在每次重新开始播放后刷新标题和艺术家。有时,歌曲信息有点太长,所以我使用 zscroll 来滚动浏览。
#!/usr/bin/env bash
maxlength=50
spotify --show-console 2>&1 |
grep -P --line-buffered "Playing music" |
while read line
do
if [[ $line == *"true"* ]]; then
sleep 0.3
playerctl --player=spotify metadata --format '{{ title }} - {{ artist }}' |
zscroll -l "$maxlength"
# cut -c 1-$maxlength
# cut works wonderful, i am just missing a bit of text, so its not an option
else
echo "music stopped!"
fi
done
这很好用,但是,只适用于第一首歌。转到下一个,它只是继续滚动浏览旧歌曲(我怀疑甚至没有新的迭代,因为 zscroll 过程还没有完成) - 有没有办法在每次迭代时终止正在运行的 zscroll 过程循环?
如果是关于操作系统 - 我使用 arch btw
【问题讨论】:
标签: bash while-loop