mpc текущая песня bash-скрипт отказоустойчив - PullRequest
0 голосов
/ 18 ноября 2018

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

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

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

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

1 Ответ

0 голосов
/ 21 ноября 2018

Если файл действительно пустой («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
...