首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

怎么实现递归

2012-02-27 
如何实现递归[ $# -eq 0 ] && directorys`pwd`||directorys$@linkchk(){for element in $1/*do[ -h $e

如何实现递归
[ $# -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变量,循环处理

热点排行
Bad Request.