V podstatě jde o to, že ze zadaného kódu tento příkaz jasně ukáže, že pole je nastaveno (resp. jeho jednotlivé elementy):
arr[$n]="$line"; echo ${arr[n]};
Když to ale testuji několika různými způsoby, s IFS=$"\n" tak to přesto nejde, pole není nastaveno a ukazuje délku 0:
old=$IFS; IFS=$'\n';
echo "${#arr[*]}"; read # "#" before array name returns the number of elements for the array host.
echo "${arr[*]}"; read # "#" before array name returns the number of elements for the array host.
echo "${arr[@]}"; read # "#" before array name returns the number of elements for the array host.
IFS=$old;
Fakt už nevím co s tím.
A toto je kód se kterým pracuju:
hledat=("NTFS" "Linux" "Oba" "Vynechat tento krok");
select hledam in "${hledat[@]}"; do
case $hledam in
${hledat[0]}) e=" -e ntfs-3g ";t="NTFS";;
${hledat[1]}) e=" -e ext2 -e ext3 ";t="EXT";;
${hledat[2]}) e=" -e ntfs-3g -e ext3 -e ext2 ";t="EXT";;
${hledat[3]}) break;;
esac;
if [ -n "${hledam}" ]; then
grep $e /etc/fstab | while read line; do
let "n += 1"
arr[$n]="$line"; # echo ${arr[n]};
done
echo "${arr[@]}"; read
echo "Vyber radek k editaci"
if [ "$t"=="EXT" ]; then echo " (/ a /home nelze editovat)."; else echo "."; fi;
select array in "${arr[@]}"; do echo "hi";
done
break;
fi;
done
To pole arr má být hlavně přístupné tomu selectu na konci
Edit: Kódu předchází jen dotaz na to, jaký filesystem chcete editovat (připojit).