ls -R path
を使用して実行できることはわかっています。しかし、私はシェル言語の構文や制御構造を学ぶためにしようとしているので、私は自分のコードを記述しようとしている:私はコマンド./ej2.sh ~/Documents/
を呼び出すとBashで指定されたディレクトリのファイルを再帰的にリスト表示する
#!/bin/sh
arg=$1;
lsRec() {
for x in $1*; do
if [ -d "$x" ]; then
lsRec $x;
else
echo "$x";
fi
done
}
lsRec $arg;
、端末はスロー:segmentation fault (core dumped)
を。なぜ私はこのエラーに遭遇していますか?私のコードで何かが見つからないのですか?
ありがとうございました。
:
あなたはにコードを変更する必要がありますが、質問 'bash'をタグ付けしましたが、あなたのシェバングラインターゲットは' sh'、あなたは(のみ) 'SHを使用しています'-compatible syntax。 – mklement0
もう1つの脇にある:同じ行に_multiple_文を置いたときに文を終了させるには ';'だけが必要です(ただし、 'do'と' 'then'doは同じ行に置かれれば'; 'が必要です)。 – mklement0