当前位置: 技术问答>linux和unix
如何实现递归
来源: 互联网 发布时间:2016-12-14
本文导语: [ $# -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 direc...
[ $# -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/*;又是什么意识?
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变量,循环处理
其中$1就是函数的第一个参数,也就是一个目录的名称
整句话的意思就是把目录下面的项目逐一赋值给element变量,循环处理