我的任务是编写一个 bash 脚本,它读取一个目录并返回其中每个文件的文件类型,包括所有子目录。不允许使用 find 命令。我尝试使用两个 for 循环来实现这一点,但我遇到了分段错误。但是,当我传递没有子目录的目录时,我发现该脚本确实有效。有人愿意查看菜鸟的代码并告诉我出了什么问题吗?非常感谢。
#!/bin/bash
func () {
for name in $1
do
if [ -f "$name" ]
then
file "$name"
elif [ -d "$name" ]
then
func "$1"
fi
done
}
directory="$1/*"
for name in $directory
do
if [ -f "$name" ]
then
file "$name"
elif [ -d "$name" ]
then
func "$1"
fi
done