我知道可以使用 ls -R path
命令实现。但是我正在学习Shell语言的语法和控制结构,因此我尝试编写自己的代码:
#!/bin/sh
arg=$1;
lsRec() {
for x in $1*; do
if [ -d "$x" ]; then
lsRec $x;
else
echo "$x";
fi
done
}
lsRec $arg;
当我调用命令
./ej2.sh ~/Documents/
时,终端会抛出错误:segmentation fault (core dumped)
。为什么会出现这个错误?我的代码有什么问题吗?谢谢。
;
终止语句(但请注意,如果将do
和then
放置在同一行上,则需要在前面加上;
)。 - mklement0