Aufgabe
Spiele mir in der Konsole aus einem Verzeichnis alle (Audio-)Dateien in zufälliger Reihenfolge ab und erlaube die Steuerung des Programms mit den gewohnten Tastendrücken.
Der Grund war der, dass ich mplayer grundsätzlich sehr mag, aber dieser mir der grundsätzlich zu geschwätzig ist und ich eigentlich nur den Liedtitel sehen möchte. Das unterstützt mplayer nicht. Wenn ich da jetzt also rumgreppe und so dann habe ich aber nicht mehr die Tastatursteuerung von mplayer und teilweise funktioniert es auch einfach nicht, weil mplayer manchmal einfach still geblieben ist - und nichts abgespielt hat. Das in den Liederdateinamen teilweise sehr exotische Sonderzeichen drin sind, hat die Sache zustätzlich erschwert.
Nach einer Weile hatte ich dann folgendes Script, benannt als randplay, was das tut was es soll. Ist nicht elegant aber tut was es soll:
Code: Alles auswählen
#!/bin/bash
get_rand_file() {
while read nr;do
file="$(eval ls \"\${$nr}\")"
echo "$file"
done < <(eval echo {1..$#} | xargs -n1 echo | sort -R )
}
mplay() {
mplayer -really-quiet "$@"
}
export -f mplay
for f in $(get_rand_file "$@" );do
echo "$f"
mplay "$f" 2>&1 | grep -vE "(do_connect: could not connect to socket|connect: No such file or directory)"
done