我學習Linux的命令,我練習,嘗試寫一個基本的shell腳本,列出子文件夾中的所有文件和文件,如ls *
,使用遞歸。遞歸在shell腳本
#!/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
是因爲外殼不允許遞歸?請幫忙,謝謝!
+1到你的學習工作。你是否知道'ls -R'或'find。鍵入-f'? –
@glennjackman,謝謝!我只是意識到你可以使用這些命令。雖然對於第二個,我認爲它應該是「找到」。型F' – Yoland
事實上,由於爲察覺錯字 –