#! /bin/ksh
# bubble_sort.ksh
# Example of a shell script to (bubble) sort some numbers
# RJM Programming 
# November, 2014
#

    ASIZE=1000
    IMIN=0
    IMAX=250
    SMODE=1
##                  save command line args in variables
    jsize=$ASIZE
    jmin=$IMIN
    jmax=$IMAX
    imode=$SMODE
    if [[ $# -gt 0 ]]; then        
        if [[ $# -ge 1 ]]; then 
          jsize=$1
        fi
        if [[ $# -ge 2 ]]; then 
          jmin=$2
        fi
        if [[ $# -ge 3 ]]; then 
          jmax=$3
        fi
        if [[ $# -ge 4 ]]; then 
          imode=$4
        fi
    fi
##                  generate random numbers
    if [ -f "./mybs.xxx" ]; then
        echo "y" > ./mybs.xxx
        #if ($status != 0) goto error
        huhzero=`rm -f ./mybs.xxx < ./mybs.xxx`
        #if ($status != 0) goto error
    fi
    cnt=0
    sarrayn=`date '+%S'`
    while [[ $cnt -lt $jsize ]]; do
	    sarrayn=`echo "${jmin}:${jmax}:${jsize}" | awk -F: -v seed=$sarrayn 'BEGIN{srand(seed);} { print ((rand() * 10000.0) % ($2 + 1 - $1)) + (((rand() * 10000.0) % ($3 + 1)) * 0.0001) + $1; }'`
	    echo $sarrayn >> ./mybs.xxx
	    cnt=`expr $cnt + 1`
	    sarrayn=`echo $sarrayn | tr -d '.'`
	done
	if [[ $imode -eq 0 ]]; then
	  huhone=`cat ./mybs.xxx | sort -n | awk '{print "Ascending Number ",NR," ",$1;}' > ./mybs.srt`
	else
	  huhone=`cat ./mybs.xxx | sort -nr | awk '{print "Descending Number ",NR," ",$1;}' > ./mybs.srt`
	fi
    #if ($status != 0) goto error
    cat ./mybs.srt
    if [ -f "./mybs.xxx" ]; then
        echo "y" > ./mybs.xxx
        #if ($status != 0) goto error
        huhzero=`rm -f ./mybs.xxx < ./mybs.xxx`
        #if ($status != 0) goto error
    fi
    if [ -f "./mybs.srt" ]; then
        echo "y" > ./mybs.srt
        #if ($status != 0) goto error
        huhzero=`rm -f ./mybs.srt < ./mybs.srt`
        #if ($status != 0) goto error
    fi
    #if ($status != 0) goto error
     exit 0
#:done
#:error
#     exit 1    