我正在学习 Linux 命令,并且正在练习并尝试编写一个基本的 shell 脚本,该脚本列出了子文件夹中的所有文件和文件,例如ls *
,使用递归。
#!/bin/bash
# list-all: one command to list them all!!!!
listit () {
if [ -d "$1" ]
then
listit "$1"
else
echo "$1"
fi
}
ls | while read items; do
listit "$items"
done
然而,结果显示:
./list-all: line 16: 1101 Done ls
1102 Segmentation fault: 11 | while read items; do
listit "$items";
done
那是因为shell不允许递归吗?请帮忙,谢谢!