1
0
Fork 0

bootSound: Remove usage of /dev/urandom

The bootSound script started to hang on strings /dev/urandom,
so replace it with a cleaner random number generation.

24134 could be used for bash, but this would make the script
less generic, as it is not available in POSIX.

Use awk random() from a suggestion from ShellCheck.

Remove the code that was there to control the parsing from
/dev/urandom.

Other fixes :
 - Use wc rather than grep to count the files
 - Use a subshell for proper directory handling
This commit is contained in:
trotFunky 2023-11-20 11:40:25 +01:00
parent f8ce7759c8
commit b6bcec6d88

View file

@ -1,16 +1,10 @@
#! /bin/sh
cd /home/trotfunky/Documents/Sounds/Startup/
qty=$(ls | grep -c "" )
(
cd /home/trotfunky/Documents/Sounds/Startup/ || exit 255
qty=$(ls | wc -l )
if [ $qty -lt 10 ]; then
maxBit=1
diGrep=[[:digit:]]
elif [ $qty -lt 100]; then
maxBit=2
diGrep=[[:digit:]][[:digit:]]
fi
mplayer -nogui -softvol -ao alsa,pulse $(expr $(strings /dev/urandom | cut -b 1-$maxBit | grep $diGrep -m 1 ) % $qty )* &
cd -
file_id=$(awk "BEGIN { srand(); print int(rand()*$qty) }" /dev/null)
mplayer -nogui -softvol -ao alsa,pulse "$file_id"_*
)
exit 0