У меня не установлен mpg123, чтобы проверить, но попробуйте заменить вторую строку на
mpg123 -R 1<> mpl
(Внимание: не поставьте случайно пробел после единицы)
Да, и -n в echo лишний.
Добавлено уже после того, как вопрос был решён, для тех, кто наткнётся на тему в поиске: У меня там ошибка, нужен ноль вместо единицы.
попробовал- в таком варианте вообще ничего не происходит.
в случае mpg123 -R < mpl вижу вот такой вывод:
@R MPG123 (ThOr) v6
@I ID3:Offshore (Original Mix) ...
@I ID3.genre:255
...
@I ID3v2.genre:Chillout & Lounge
@P 2
~> (выход)
Да не, я просто про -n подписал чуть позже, и вы могли прочитать первоначальный вариант. Поэтому и спросил.
Сейчас попробую поставить mpg123 и проверить.
поясняю: если файл mpl был открыт на запись, он должен оставаться открытым, иначе mpg123 завершит работу. echo после вывода закрывает файл. Сначала я хотел сделать, чтобы mpg123 сам держал этот файл открытым ещё и на запись ))), но это не прокатило. Придётся в лоб: держать его открытым с помощью запущенного в фоне cat.
Или можно вместо
cat > mpl &
сделать
exec 5> mpl
это будет держать mpl открытым пока выполняется скрипт.