【发布时间】:2016-08-14 19:41:19
【问题描述】:
我知道可以使用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)。为什么会出现此错误?,我的代码中是否缺少某些内容?
谢谢。
【问题讨论】:
-
顺便说一句:您已将问题标记为
bash,但您的 shebang 行以sh为目标,并且您正在使用(仅)sh兼容语法。 -
另一边:如果您将 多个 语句放在同一行上,您只需要
;来终止语句(但请注意do和then如果放置在同一行上,则需要前面的;)。