Portál AbcLinuxu, 19. května 2025 10:57
#!/bin/bash declare file for file in $(find $(dirname $0)/src -type f) do source $file done unset file
while IFS= read -r file; do source "$file" done < <(find "$(dirname $0)/src" -type f)
Jistě, že s for ((;;)); ...
, break
a continue
půjde úplně cokoliv, ale otázka je, proč takový nesmysl dělat. Jo, kdyby to mělo méně řádků, možná by to stálo za úvahu.
Pokud by šlo o for
-cyklus přes předem načtené výsledky toho vyhledávání: Když nemusím všechny výsledky naráz načítat do paměti, raději je všechny naráz načítat nebudu. Ne že by dnes hrozil nedostatek paměti, ale čím menší je náročnost (ať časová nebo paměťová), tím lépe pro [udržovatelnost | rozsah použitelnosti | rozšiřitelnost] kódu.
Tady třeba musím celé pole files
načíst předem, což výše uvedené řešení nedělá / nepotřebuje:
readarray -t files < <(find "$(dirname $0)/src" -type f) for file in "${files[@]}"; do source "$file" done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.