mpc текущая песня bash-скрипт отказоустойчив

У меня есть скрипт, который зацикливается:

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

Однако иногда он не может получить детали песни и создает пустой файл. FFMpeg читает этот файл, и он падает, если он пуст. Есть ли какой-нибудь способ обеспечить безопасность сценария, поэтому, если файл пуст, он добавляет определенный текст?

Будет ли лучший способ создать сценарий, который пытается прочитать файл, и если он оказывается пустым, вставить некоторый текст, а затем спать в течение определенного периода времени, или есть более элегантный способ сделать это?

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
Другие вопросы по тегам