1) nepouzivej v bashi local, je to hnus a je to zbytecny protoze bash proste nema ty scopy v platnosti
2) zamysli se nad problemem tvorive .. proc delat drbani se pravou rukou za levym uchem ? tenhle priklad je proste logicky spatne a kdyz se nad tim zamysli, tak stale nechapu, pri jake prilezitosti by se mi hodilo mucit vystup z nejake funkce abych ziskal 2 promenne .. navic ty promenne nastav v te funkci a misto local pouzivej spravne unset
#!/bin/bash
## spravne jak nechces
x() {
m=$(($1-$2));
n=$(($1+$2));
};
x $1 $2;
echo "rozdil $m";
echo "soucet $n";
unset m n x;
## divne jak chces
y() {
m=$(($1-$2));
n=$(($1+$2));
echo -e "$m|$n";
};
_out=$(y $1 $2);
echo "rozdil2 ${_out%%|*}";
echo "soucet2 ${_out##*|}";
unset _out y;
exit 0;
precti si
http://mywiki.wooledge.org/BashFAQ/100 a sekci "removing part of string"
dalsi hint:
# echo xabyabz | awk -F "ab" '{print( $1 "\n" $2 "\n" $3); }'
x
y
z