< source_code>
#!/bin/bash
LIMIT=$1
if [ $2 ]
then
CELL=$2
else
CELL=[]
fi
#******************
print_horizontal_line()
{
ME=0
while [ $ME -lt $LIMIT ]
do
echo -n $CELL
let "ME= ME+1"
done
}
#******************
#******************
print_vertical_line()
{
ME2=0
while [ $ME2 -lt $LIMIT ]
do
print_horizontal_line
echo
let "ME2= ME2+1"
done
}
#******************
print_vertical_line;
let "LIMIT= LIMIT/2"
if [ $LIMIT -le 0 ]
then
exit
else
$0 $LIMIT $CELL
fi
exit
</source_code>
This short program to the above serves to demonstrate some basic bash programming syntax and a (very) basic use of recursion. If the program is run on the command line as:
lancemiller$ recursive_bash 4 [][][][] [][][][] [][][][] [][][][] [][] [][] [] In shell programming the arguments are numbered $0 $1 $2 $3 $4 ....etc recursive_bash 4 ^ ^ | | $0 $1
The recursive_bash program is going to take $1 (numeral 4 in this example) and perform some math and print a certain amount of characters as a result. First $1 is assigned to the variable LIMIT. Math and print statements occur using $LIMIT. $CELL is the character that will be printed. Argument $2 is optional. Example:
lancemiller$ recursive_bash 4 cat catcatcatcat ^ catcatcatcat | catcatcatcat arg $2 catcatcatcat catcat catcat cat $LIMIT is divided by 2.-> let "LIMIT= LIMIT/2" Then the recursive moment comes in recursive_bash at the line that says: $0 $LIMIT $CELL $0 is the program itself(recursive_bash). It is called over and over till let "LIMIT= LIMIT/2" results in zero. When $LIMIT is equal or less than zero the program exits.
No comments:
Post a Comment