Добил скрипт, вот финал качать тут
https://disk.yandex.ru/d/4hAmN9WN6EqIdQ---------------------------------
в этом коде есть баг , исправленный код в ответах ниже
---------------------------------
что изменил:
эту версию скрипта специально оставил для изучения , строка
find . -mindepth 1 -type d -not -name "W_L" -exec sh -c 'mv -v "$0"/* "$PWD" && rm -r "$0"' {} \;
оказалось вредной по сути она проявила уязвимость окружения termux, уявимость проявляется если эта строка начинает работать с расшареным каталогом,вне home каталога в домашнем каталоге телефона, эфект бомбический, хомяка вывернуло на изнанку, то есть строка вывела из всех подкаталогов все файлы в хомяк
---------------------------------------------------------------------------------------
1. автоматизировал перенос треков из подкаталогов в текущий---больше никогда так делать не буду.
2. убрал лишний пункт сброса истории треков, теперь достаточно выбрать 1 трек аудиокниги, и это приведет к той же ситуации что мы слушаем книгу заново.
-------------------------------------------------
этот код не брать! Abook_2_mpv_totiks_v09_07_fin.sh ,в заголовке исправленый v09_09
если удалить вышеобозначеную строку код будет работать исправно и безопасно.
по сути пока строка работала с указанным каталогом в хомяке termux, проблем не было, но после шальной мысли перенести плейлист с файлами в расшаренный для termux каталог в пространство пользователя телефона, делал для удобства, чтоб был доступ из файлового менеджера андроид, то есть вне хомякка termux, вот тут бомба и взорвалась, кто найдёт это ,и прочитает, знатно посмеётся, я себе обеспечил веселье на весь вечер,пока всё восстанавливал, это уж точно.
-------------------------------------------------
#!/bin/bash
#set -x
while true; do
selected_option=$(echo -e "Продолжить\nВыйти" | peco --prompt "Продолжим работу в программе? ")
case "$selected_option" in
"Выйти")
break
;;
"Продолжить")
selected_option=$(echo -e "Продолжить прослушивание трека\nВыбрать трек и слушать" | peco --prompt "Выберите действие: ")
case "$selected_option" in
"Выбрать трек и слушать")
selected_dir=$(find $HOME/Music/pl -mindepth 1 -maxdepth 1 -type d ! -name "W_L" | grep -v '/\..*' | xargs -I {} basename {} | peco)
cd $HOME/Music/pl/"$selected_dir"
rm -r ./W_L/
mkdir ./W_L/
#пернос треков из подкаталогов в текущий
#find . -mindepth 1 -type d -not -name "W_L" -exec sh -c 'mv -v "$0"/* "$PWD" && rm -r "$0"' {} \; #-строка ой не хорошая никогда так не делайте
# Получаем список треков в текущей директории
tracks=$(ls | grep -E '\.mp3$|\.flac$')
#tracks=$(find ./ -type f \( -name "*.mp3" -o -name "*.flac" \) -print | sort)
# Используем Peco для выбора трека
selected_track=$(echo "$tracks" | peco --prompt "Выберите трек: ")
# Создаем плейлист из всех треков, начиная с выбранного трека
playlist=$(echo "$tracks" | awk -v selected="$selected_track" '{if ($0 == selected) selected_found=1} {if (selected_found) print; if (!$0 ~ selected) print}' | xargs -0 printf "%s\n" | tr '\0' '\n')
echo "$playlist" >./pl.txt
# Передаем выбранный трек в mpv для воспроизведения
mpv --no-video --save-position-on-quit --watch-later-directory=./W_L --playlist="pl.txt"
;;
"Продолжить прослушивание трека")
# Ваш скрипт для слушания
selected_dir=$(find $HOME/Music/pl -mindepth 1 -maxdepth 1 -type d ! -name "W_L" | grep -v '/\..*' | xargs -I {} basename {} | peco)
cd $HOME/Music/pl/"$selected_dir"
mkdir ./W_L
#пернос треков из подкаталогов в текущий
#find . -mindepth 1 -type d -not -name "W_L" -exec sh -c 'mv -v "$0"/* "$PWD" && rm -r "$0"' {} \; -строка ой не хорошая никогда так не делайте
if [ -z "$playlist_file" ]; then
playlist_file="$PWD/playlist.txt"
find "$PWD" -type f '(' -iname '*.mp3' -o -iname '*.flac' ')' | sort > "$playlist_file"
fi
mpv --no-video --save-position-on-quit --watch-later-directory=./W_L --playlist="playlist.txt"
;;
esac
;;
esac
done