Piszę skrypt powłoki, w którym muszę pętli ponad katalogów, a następnie pętli nad plikami w nich. Więc pisałem tę funkcję:Pętla na pustej zawartości katalogu w Bash
loopdirfiles() {
#loop over dirs
for dir in "${PATH}"/*
do
for file in "${dir}"/*
do
echo $file
done
done
}
Problemem jest to, że coś takiego echa * ścieżka/do/dir/** na pustych katalogów.
Czy istnieje sposób na wykorzystanie tego podejścia i zignorowanie tego rodzaju katalogów?
Jeśli używasz 'PATH' jako zmienna w skrypcie ** nie **. Przerywasz uruchamianie zewnętrznych poleceń, ponieważ używa się do tego 'PATH'. Ogólnie należy unikać zmiennych ALL_CAPS (innych niż dla globali skryptu), ponieważ są one "zastrzeżone" dla powłoki/etc. posługiwać się. –