Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- !/bin/bash
- # this script creates an outfile with "val" number of lines of digits with the columns aligned ...
- # but formating only works to 999 so far , but its eay to extend,
- # WARNING: you will still need to edit the outfile to add or remove ...
- # since this script cant perfectly write to 64,128,256,512... and such
- # mike , undergrad, friday,4th,2011.
- # hope it makes your work easier!!
- if [ $# -eq 0 ]
- then
- echo " "
- fi
- myarray=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)
- count=0
- n=0
- val=25 #change this to the number of lines you want ie if 1..50 , val~3 since there are
- # roughly five lines of digits
- echo -n " even or odd ? "
- read -e TYPE
- if [ "$TYPE" = "even" ]
- then let type=2
- else let type=1
- fi
- tens=99
- hundreds=999 #you would need to add other variables like t...r than 999
- i=0
- if [ "$type" -eq 2 ]; then ########### for the even list of digits
- echo >> outfile$type
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) == "0" )); then
- sed '$s/$/ '$i'/' -i outfile$type
- # echo $i
- if [ "${myarray[$i]}" -gt "10" ] ; then
- sed '$s/$/ /' -i outfile$type
- else sed '$s/$/ /' -i outfile$type #his adjusts the space betw....the forward slashes
- fi
- fi
- done
- echo >> outfile$type
- while [ $n -le $val ]
- do
- for i in ${myarray[@]}
- do
- myarray[$count]=`expr $i + 20`
- ((count++))
- done
- count=0
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) == "0" )) ; then # check if its odd or even
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[0]}" -le "$tens" ] ; then
- sed '$s/$/ /' -i outfile$type # adjusts space betwe...the ones digits
- elif [ "${myarray[0]}" -le "$hundreds" ]; then
- sed '$s/$/ /' -i outfile$type #this adjusts........igned with the ones & tens
- #ld add such elifs from here to... extend the column alignment beyond 999
- else
- sed '$s/$/ /' -i outfile$type #adjusts space after hundreds
- fi
- fi
- done
- echo >> outfile$type
- let n++
- done
- else ## for odd numbers
- echo >> outfile$type
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) != "0" )); then
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[$i]}" -gt "10" ]; then
- sed '$s/$/ /' -i outfile$type
- else sed '$s/$/ /' -i outfile$type #s adjusts the space between the ones dig...ashes
- fi
- fi
- done
- echo >> outfile$type
- while [ $n -le $val ]
- do
- for i in ${myarray[@]}
- do
- myarray[$count]=`expr $i + 20`
- ((count++))
- done
- count=0
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) != "0" )) ; then # check if its odd or even
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[0]}" -le "$tens" ] ; then
- sed '$s/$/ /' -i outfile$type # adjusts space between the tens...be elif [ "${myarray[0]}" -le "$hundreds" ]; then
- sed '$s/$/ /' -i outfile$type #...ds digits to be aligned with the ones & ...
- # you would add such elifs from here to extend the........
- else
- sed '$s/$/ /' -i outfile$type # adjusts space after hundreds
- fi
- fi
- done
- echo >> outfile$type
- let n++
- done
- fi
- this is the error message thought the script does what its intended to do:
- ./Onetofive: line 40: [: : integer expression expected
- funny thing is that it only gives the error message when i choose the "even"
- choice , but still does what its intended, the "odd" does not give any error message
- i'v highlighted line 40
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement