递归函数演绎示例

脚本要求

使用递归函数历遍PATH环境变量下的所有目录以及可执行文件

方法一

脚本内容

#!/bin/bash
###########添加分隔符#######################
IFS=$IFS':'
############递归函数#########################
list () {
for F in $1/*
do
if [ -d $F ]
 then
 echo "$2目录:$F"
 list "$F" " $2"
elif [ -x $F ]
 then
echo "$2可执行文件:$F"
fi
done
}
##############主体命令######################## 
for f in $PATH
 do
 echo "目录:$f"
 list "$f" " "
 done

执行效果

在这里插入图片描述

方法二

脚本内容

#!/bin/bash
IFS=$IFS':'
list () {
for F in `ls $1`
do
if [ -d $1/$F ]
 then
 echo "$2目录:$F"
 list "$1/$F" " $2"
elif [ -x $1/$F ]
 then
echo "$2可执行文件:$F"
fi
done
}

for f in $PATH
 do
 echo "目录:$f"
 list "$f" " "
 done

执行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CN_LiTianpeng/article/details/108167476