LINUX.ORG.RU

Bash. Вывести четыре состояния из двух возможных

 , ,


0

1

Не получается заставить работать скрипт полностью.

Задача:
вывести текущее состояние аудиоплеера.
Условия:
плеер DeadBeeF умеет выводить только состояния «воспроизводится» и «пауза».

Сделал так:

#!/bin/bash

# проверить включена ли программа:
if deadbeef --version >/dev/null 2>&1;
  then STATE="10"
  else STATE="20"
fi

# обработать состояние воспроизведения:
if [ $(deadbeef --nowplaying-tf '%isplaying%') == "1" ];
  then STATUS="3"
elif [ $(deadbeef --nowplaying-tf '%ispaused%') == "1" ];
  then STATUS="4"
else STATUS="5"
fi

let "aaa = $STATE + $STATUS"

if [ "$aaa" -ge "20" ];
  then echo "[OFF]"
elif [ "$aaa" == "13" ];
  then echo "[PLAY]"
elif [ "$aaa" == "14" ];
  then echo "[PAUSE]"
elif [ "$aaa" == "15" ];
  then echo "[STOP]"
fi

Результат:
с таким решением выводит он только состояния «play»,«pause» и «stop».
Вопрос:
как заставить вывести четвёртое состояние «OFF»?



Последнее исправление: Dreamdrawer (всего исправлений: 1)

# проверить включена ли программа:
if deadbeef --version >/dev/null 2>&1;

Это точно то. что ты хочешь? Условие не соответствует комментарию. Чтобы проверить, запущена ли программа, условие должно выглядеть так:

if pidof deadbeaf >/dev/null 2>&1;

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Программ может быть запущено несколько, ты вы не выясните запущена та программа или не та. С dbus как-то адекватней выйдет наверно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.