3 ms·
Untested, but should get you close enough. #!/usr/bin/env bash F_NUM=$(($RANDOM % $(ls ~/.git/sounds/$i| wc -l))) n=0 for i in * do
by jeebusroxors 16y ago
Untested, but should get you close enough.
#!/usr/bin/env bash
F_NUM=$(($RANDOM % $(ls ~/.git/sounds/$i| wc -l)))
n=0
for i in *
do
if [[ n -eq $F_NUM ]]
then
afplay ~/.git/sounds/$i > /dev/null 2>&1 &
fi
n=$((n + 1))
done
- slug 16y agoMy version: #!/bin/bash SOUNDPATH=${HOME}/.play-random/sounds if [ ! -d ${SOUNDPATH} ]; then echo "Create and populate '${SOUNDPATH}' directory" exit 1; fi SOUNDS=($(ls "${SOUNDPATH}")) NUM_SOUNDS=${#SOUNDS[*]} if [ ${NUM_SOUNDS} -eq 0 ]; then echo "No sound files found in '${SOUNDPATH}' directory" exit 1; fi # select which sound to play SOUND="${SOUNDPATH}/${SOUNDS[$((RANDOM%NUM_SOUNDS))]}" echo ${SOUND} /usr/bin/aplay ${SOUND} code at: http://aeminium.org/slug/software/shell/#play.random.sh http://aeminium.org/slug/software/shell/#play.random.sh There's a way of removing that ls ${DIR} and use an echo ${DIR}/* at the expense of making it a bit uglier to detect when there's no sound files.