如何实现递归
[ $# -eq 0 ] && directorys=`pwd`||directorys=$@
linkchk(){
for element in $1/*;do
[ -h "$element" -a ! -e "$element" ] && echo \"$element\"
[ -d "$element" ] && linkchk $element
done
}
for directory in $directorys;do
if [ -d directory ]
then linkchk $directory
else
echo "$directory is not a directory"
echo "Usage:$0 dir1 dir2 ..."
fi
done
exit 0
我不明白的是linkchk()函数中,对有子目录的目录他是如何实现递归,高手们能否举例详细说明下,例如/bin/ss
还有第三行的in $1/*;又是什么意识?
------解决方案--------------------
for element in $1/*
其中$1就是函数的第一个参数,也就是一个目录的名称
整句话的意思就是把目录下面的项目逐一赋值给element变量,循环处理