我的任务是编写一个 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
Run Code Online (Sandbox Code Playgroud)