Ce n' “$1/*” dans “pour le fichier dans $1/*”
Court bash script ci-dessous la liste de tous les fichiers et répertoires dans le répertoire et de ses sous. Ce qui ne l' $1/*
dire dans le script? Merci de me donner quelques références à ce sujet. Grâce
#!/bin/sh
list_alldir(){
for file in $1/*
do
if [ -d $file ]; then
echo $file
list_alldir $file
else
echo $file
fi
done
}
if [ $# -gt 0 ]; then
list_alldir "$1"
else
list_alldir "."
fi
Vous devez vous connecter pour publier un commentaire.
C'est le glob de la premier argument considéré comme un répertoire
Dans les scripts bash les arguments d'un fichier sont passés dans le script comme
$0
( qui est le nom du script ), puis$1
,$2
,$3
... pour accéder À tous d'entre eux vous utilisez soit leur étiquette ou d'utiliser l'un des groupe de constructions. Pour le groupe construit il y a$*
et$@
. ($*
tient compte de tous les arguments comme un bloc où, comme$@
considère délimité par$IFS
)$1
signifie que le premier paramètre.for file in $1/*
moyens boucle avec la variablefile
avoir la valeur du nom de chaque fichier dans le répertoire nommé dans le premier paramètre.$1 est le premier argument de ligne de commande. Si vous exécutez la commande ./asdf.sh a b c d e, alors $1 sera un, $2 b, etc. Dans les coquilles avec les fonctions $1 peut servir comme premier paramètre de la fonction, et ainsi de suite.