Portál AbcLinuxu, 10. května 2025 02:42
#!/bin/bash
cat /etc/fstab | while read line
do
neco=( "${neco[@]}" "$line" )
echo "array: ${#neco[@]}"
done
echo ${#neco[@]}
Bohuzel vystup je tomto (mem) pripade:
./run_vmmenu.sh
array: 1
array: 2
array: 3
array: 4
array: 5
array: 6
array: 7
array: 8
array: 9
0
Abych to trosku okomentoval, pri kazdem cyklu vypisuji kolik promennych je v poli.
V uvedenem pripade to dokazuje, ze se radky do pole skutecne pridavaji.
Posledni cislo je ta sama vec, ale po ukonceni cyklu.
Tim se dostavam k otazce, proc pole zanikne po skonceni cyklu? Resp. Jak tomu predejit?
while read x; do : done <soubornebo
exec 3<soubor while read line <&3; do : done exec 3<&-3) Ovšem pro načtení souboru do pole, tak aby jeden prvek = jeden řádek, je nejjednodušší:
bIFS=$IFS IFS=$'\n' neco=($(cat /etc/fstab)) IFS=$bIFS
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.