求助——Shell程序recurpwd递归技术的问题

下面的Shell程序recurpwd采用了递归技术,列出位置参数1中指定的目录子树下的全部目录。当recurpwd不带参数时,则显示当前目录子树下的所有目录。请在标记的4个空白处填写缺少的Shell语句或语句中的一部分。
        if test $# -eq 0 ; then
               (1)            
        else
            if   (2)          ; then
                echo $1
                ( cd $1
                  for j    (3)      ; do
                            (4)        
                 done )
                fi
        fi