+#!/bin/bash
+
+#==BEGIN Function Definitions==
+randFloat() {
+ # Desc: Output random float with no newline
+ # Usage: randFloat arg1
+ # Inputs: arg1: number of decimal places
+ # Output: stdout: float as decimal string
+ # Version: 0.0.1
+ # Note: Outputs float from 0.000... to 0.999...
+ # Note: Default number of decimals is 5.
+ # Ref/Attrib: Integer test regular expression https://stackoverflow.com/a/806923
+
+ # Validate input
+ if [[ $# -eq 0 ]]; then
+ : # do nothing
+ elif [[ $# -eq 1 ]]; then
+ arg1=$1;
+ RETEST1='^[0-9]+$'
+ if ! [[ $arg1 =~ $RETEST1 ]]; then
+ echo "ERROR:Not an integer." >&2; exit 1;
+ fi;
+ else
+ echo "ERROR:Invalid number of arguments:${@}";
+ fi;
+
+ # Produce output
+ decimals="$(head -c ${arg1:-5} < <(LC_ALL=C tr -cd "[:digit:]" < <(cat /dev/urandom)))";
+ echo 0."$decimals";
+}
+#==END Function Definitions==
+
+#==BEGIN sample code==
+dec=70
+time randFloat;
+time (randFloat && randFloat && randFloat && randFloat && randFloat && randFloat && randFloat && randFloat && randFloat && randFloat);
+time (randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec" && randFloat "$dec");
+time (randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null && randFloat "$dec" &>/dev/null);
+#==END sample code==