mpc 当前歌曲 bash 脚本故障安全

Posted

技术标签:

【中文标题】mpc 当前歌曲 bash 脚本故障安全【英文标题】:mpc current song bash script fail safe 【发布时间】:2018-11-18 19:03:04 【问题描述】:

我有一个循环脚本:

#!/bin/sh
while [ true ]
do
  mpc current > current_song.txt
  mpc idle player
done

但有时它无法获取歌曲详细信息并创建一个空白文件。 FFMpeg 正在读取这个文件,如果它为空,它会崩溃。有什么方法可以保证脚本的安全,所以如果文件是空白的,它会添加特定的文本?

最好的方法是创建一个尝试读取文件的脚本,如果结果为空白,插入一些文本,然后休眠一段时间,还是有更优雅的方法来做到这一点?

【问题讨论】:

能否在“mpc current”行之后添加“if [!-s]; then echo Not found > current_song.txt; fi”?如果文件为空,这只会将“未找到”写入文件。顺便说一句,你的第一行应该是“while true”(你不需要方括号)。 上一行的小错误 - 在测试中遗漏了他的文件名!它应该是“如果[!-s current_song.txt]” 非常感谢!得到它的工作:) 【参考方案1】:

如果文件确实为空(“ls -l”显示长度为 0),您可以将一些文本放入文件中,如下所示:

#!/bin/sh
while true
do
  mpc current > current_song.txt
  if [ ! -s current_song.txt ]; then
    echo SongNotFound.mp3 > current_song.txt
  fi
  mpc idle player
done

【讨论】:

以上是关于mpc 当前歌曲 bash 脚本故障安全的主要内容,如果未能解决你的问题,请参考以下文章

linux周记

持续实时获取当前在 Spotify 上播放的歌曲

编写快速安全 Bash 脚本的建议 | 翻译

安全地杀死在 bash 脚本中启动的后台进程

被另一个bash脚本调用后获取文件的当前目录[重复]

编写快速安全Bash脚本的建议