Portál AbcLinuxu, 10. května 2025 19:18
#!/bin/bash function MyReader(){ local i r declare -i i=0 declare -a POLE=() while read r; do POLE+=("$r") let i++ done < /file unset i r }Pokud nahradím
declare -a POLE=()pouze za
POLE=()tak to funguje, nějaká rada prosím? Díky
Řešení dotazu:
mam taky GNU bash, verze 5.1.4(1)-release (x86_64-pc-linux-gnu) a uplně normálně mi to jede :O :O
asi jakoby víc upřesni co myslíš tim že to nefunguje :O :O
echo ${POLE[@]}vypíše uvnitř funkce všechny prvky ale v jiné funkci už ne.
nóóóóó protože to je vtý funkci jako lokální proměná :O ;D jestli jakoby chceš aby k tý proměný mohlo přistupovat víc funkcí tak tu proměnou asi chceš udělat globální ;D
hele příklady nějaký :D ;D
When used in a function, declare makes each name local, as with the local command, unless the -g option is used.
ajo :D
možná jakoby zkuz to pole deklarovat takle s tim g navíc :O :O
declare -ag POLE=()
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.