im sorry to not be able to reply to all your stuffs you didnt make it easy im happy it works for me now
On Mon, Mar 22, 2021 at 3:43 AM Greg Wooledge <g...@wooledge.org> wrote: > > On Mon, Mar 22, 2021 at 03:12:25AM +0100, Alex fxmbsw7 Ratchev wrote: > > i realize its somewhat of a big limitation, to have only global and > > one level further ( local ) args, no per function > > One or more of your assumptions are wrong. > > Bash uses "dynamic scope" when it expands variables. This means that > it looks first in the current functions local variables; if the variable > isn't found there, it looks in the caller's local variables, and then > in the caller's caller's local variables, and so on, until it reaches > the global scope. > > > f() { > local var=set_in_f > g > } > > g() { > echo "var is $var" > } > > var=global > f > # Prints "var is set_in_f" > > > Now, the big question is WHY you thought something which is not correct. > > The most common reasons that people think something which is wrong are: > > 1) They heard or read it somewhere, and did not verify it themselves. > > 2) They encountered a problem with their own program, and while attempting > to track down the problem, they took a wrong turn, and did not fully > diagnose the situation. They drew a wrong conclusion from partial data. > > In your case, I suspect it's #2. > > This project that you've been working on is so incredibly arcane, > convoluted and bizarre that *nobody* understands it, including you. Who > knows how many other fallacious assumptions are baked into it, since you > are apparently incapable of simplifying anything down to the most basic > level for debugging, or even explaining what your *goal* is. >