Recursion in BASH

My task is create script which lists all subdirs in user’s directory and write them in a file.

I created a recursive function which should run through all directories from main and write the names of their subdirs in the file. But the script runs for first folders in my home dirs until reaching the folder without the subfolder. How do I do it correctly?

#!/bin/bash
touch "/home/neo/Desktop/exercise1/backup.txt"
writeFile="/home/neo/Desktop/exercise1/backup.txt"
baseDir="/home/neo"

print(){
    echo $1
    cd $1
    echo "============">>$writeFile
    pwd>>$writeFile
    echo "============">>$writeFile
    ls>>$writeFile
    for f in $("ls -R")
    do
        if [ -d "$f" ]
        then
            print $1"/"$f
        fi
    done
}

print $baseDir

Answer

to get all folders within a path you can simply do:

find /home/neo -type d > /home/neo/Desktop/exercise1/backup.txt

done