#! /bin/csh -f # bubble_sort.csh # Example of a shell script to (bubble) sort some numbers # RJM Programming # November, 2014 # set ASIZE=1000 set IMIN=0 set IMAX=250 set SMODE=1 ## save command line args in variables set jsize=$ASIZE set jmin=$IMIN set jmax=$IMAX set imode=$SMODE if ($#argv > 0) then if ($#argv >= 1) then set jsize=$1 endif if ($#argv >= 2) then set jmin=$2 endif if ($#argv >= 3) then set jmax=$3 endif if ($#argv >= 4) then set imode=$4 endif endif ## generate random numbers if (-f "./mybs.xxx") then echo "y" > ./mybs.xxx if ($status != 0) goto error set huhzero=`rm -f ./mybs.xxx < ./mybs.xxx` if ($status != 0) goto error endif set cnt=0 set sarrayn=`date '+%S'` tloop: if ($cnt < $jsize) then set 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++ set sarrayn=`echo $sarrayn | tr -d '.'` goto tloop endif if ($imode == 0) then set huhone=`cat ./mybs.xxx | sort -n | awk '{print "Ascending Number",NR,$1;}' > ./mybs.srt` else set huhone=`cat ./mybs.xxx | sort -nr | awk '{print "Descending Number",NR,$1;}' > ./mybs.srt` endif if ($status != 0) goto error cat ./mybs.srt if (-f "./mybs.xxx") then echo "y" > ./mybs.xxx if ($status != 0) goto error set huhzero=`rm -f ./mybs.xxx < ./mybs.xxx` if ($status != 0) goto error endif if (-f "./mybs.srt") then echo "y" > ./mybs.srt if ($status != 0) goto error set huhzero=`rm -f ./mybs.srt < ./mybs.srt` if ($status != 0) goto error endif if ($status != 0) goto error done: exit 0 error: exit 1