X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/b9e8b771e985fcdf26ba8b9ccb8e31b62da757d3..6902250a188de0d54be60ac9f2d7075c37176b01:/unitproc/bkshuf?ds=inline diff --git a/unitproc/bkshuf b/unitproc/bkshuf index 8aaac9d..d2d0763 100644 --- a/unitproc/bkshuf +++ b/unitproc/bkshuf @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Desc: Mixes input lines while also preserving some neighbors # Usage: cat file | bkshuf arg1 -# Version 0.1.0 +# Version 0.1.2 # Depends: bc 1.07.1, GNU Coreutils 8.32 (shuf) # Input: var: arg1 initial lines to output @@ -124,7 +124,12 @@ main() { else lc_out_max="$1"; # output line count fi; - + + # Check env vars + if ! checkInt "$BKSHUF_PARAM_LINEC"; then + die "FATAL:Not an int:BKSHUF_PARAM_LINEC:$BKSHUF_PARAM_LINEC"; fi; + if ! checkInt "$BKSHUF_PARAM_GSIZE"; then + die "FATAL:Not an int:BKSHUF_PARAM_LINEC:$BKSHUF_PARAM_GSIZE"; fi; # store input lines from stdin (like `shuf`) while read -r line; do @@ -156,6 +161,7 @@ main() { lc_out="0"; # init output line counter if [[ -z "$lc_out_max" ]]; then lc_out_max="$lco"; fi; ip="$(shuf -i0-$(( lco - 1 )) -n1)"; # init input index pointer + RANDOM="$(shuf -i0-32767 -n1)"; # init Bash PRNG n_loop1="0"; #yell "DEBUG:max_blanks:$max_blanks" while [[ $lcr -ge 1 ]] && [[ $lc_out -lt $lc_out_max ]]; do