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:
parent
f8ce7759c8
commit
b6bcec6d88
1 changed files with 8 additions and 14 deletions
|
@ -1,16 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
cd /home/trotfunky/Documents/Sounds/Startup/
|
(
|
||||||
qty=$(ls | grep -c "" )
|
cd /home/trotfunky/Documents/Sounds/Startup/ || exit 255
|
||||||
|
qty=$(ls | wc -l )
|
||||||
|
|
||||||
|
file_id=$(awk "BEGIN { srand(); print int(rand()*$qty) }" /dev/null)
|
||||||
|
mplayer -nogui -softvol -ao alsa,pulse "$file_id"_*
|
||||||
|
)
|
||||||
|
|
||||||
if [ $qty -lt 10 ]; then
|
exit 0
|
||||||
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 -
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue