Solutions to HW 7 ------------------ #!/bin/bash if [ "$#" -ne 1 ] then echo "`basename $0`: Improper argument usage." 1>&2 exit 1 fi if [ ! -d $1 ] then echo "$1 is not a directory." 1>&2 exit 2 fi cd "$1" dirname=`pwd` traverse () { local dir=$1 local level=$2 local i local prefix local base local formattedstring local newname prefix="" for i in `seq 1 $level` do prefix=$prefix"+" done base=`basename $dir` formattedstring=$prefix$base echo $formattedstring for i in `ls $dir` do newname=$dir"/"$i if [ -f $newname ] then echo $prefix"-""`basename $i`" fi if [ -d $newname ] then traverse $newname `expr $level + 1` fi done } traverse $dirname 1