#!/bin/sh -eu files=$(find "${1:-.}" -type f) n=$(echo "$files" | wc -l) prev=-1 index=$((RANDOM % n)) while :; do while [ $index -eq $prev ]; do index=$((RANDOM % n)) done prev=$index echo "$files" | ( i=0 while read -r file; do if [ $i -eq $index ]; then echo "Playing $file" mpv "$file" || : break fi i=$((i + 1)) done ) done