J'apprends la commande Linux et je m'exerce et essaie d'écrire un shell basique script qui liste tous les fichiers et les fichiers dans les sous-dossiers, comme ls *
en utilisant la récursion.
#!/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
Cependant, le résultat montre :
./list-all: line 16: 1101 Done ls
1102 Segmentation fault: 11 | while read items; do
listit "$items";
done
Est-ce parce que l'interpréteur de commandes ne permet pas la récursion ? Aidez-moi, merci !