Je veux vérifier si un répertoire contient des fichiers ou non dans bash. Mon code est ici.Comment tester le résultat de l'extension du nom de fichier en bash?
for d in {,/usr/local}/etc/bash_completion.d ~/.bash/completion.d
do
[ -d "$d" ] && [ -n "${d}/*" ] &&
for f in $d/*; do
[ -f "$f" ] && echo "$f" && . "$f"
done
done
Le problème est que "~/.bash/completion.d" n'a pas de fichier. Donc, $ d/* est considéré comme une simple chaîne "~/.bash/completion.d/*", pas une chaîne vide qui est le résultat de l'expansion du nom de fichier. En conséquence de ce code, bash essaie d'exécuter
. "~/.bash/completion.d/*"
et bien sûr, il génère un message d'erreur.
Quelqu'un peut-il m'aider?
En un mot simple, je veux savoir comment forcer l'extension de nom de fichier pour la chaîne de nom de fichier invalide – user159087