Когда я запускаю приведенный ниже скрипт, mplayer
выдает приведенную ниже ошибку и не продолжает цикл while после нажатия return. если я заменю mplayer
на mpv
, это сработает. Я должен использовать mplayer, так как mpv
не поддерживает видеоформаты, которые мне нужны для воспроизведения.
Я подозреваю, что проблема связана с перенаправлением дескриптора файла, но я должен был сделать это, чтобы пользовательский ввод работал в цикле while с переданными по каналу данными из find
.
Назначение
Цель сценария - я хочу воспроизвести каждый файл в каталоге, и после просмотра видео он должен подсказать мне, что делать с файлом. Например. удалить, переименовать, переместить.
Вопрос
Кто-нибудь может увидеть, в чем проблема, или, возможно, как ее обойти?
#!/usr/bin/bash
exec 3<&0 # redirect std input to a different file descriptor
find . -maxdepth 1 -type f -name "*" | while read f; do
mplayer -really-quiet -msglevel all=-1 "$f"
echo $f
printf "What to do: "
IFS= read -r -u3 opt
done
exec 3<&- # Close fd3
Ошибка
do_connect: could not connect to socket
connect: No such file or directory
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
Assertion 'm' failed at pulse/thread-mainloop.c:175, function pa_threaded_mainloop_lock(). Aborting.