SOMAT! - biológiai béklyó (nemlyó)

Ez működik:


:~$ SOMAT=true
:~$ if ! $SOMAT ; then echo 'kisfa'; else echo 'randycheck'; fi
randycheck
:~$ SOMAT=false
:~$ if ! $SOMAT ; then echo 'kisfa'; else echo 'randycheck'; fi
kisfa

Elolvassuk az alábbi tippeket:

http://stackoverflow.com/questions/1464253/global-environment-variables…
http://stackoverflow.com/questions/496702/can-a-shell-script-set-enviro…

Aztán ezt is:
http://tldp.org/LDP/abs/html/gotchas.html#PARCHILDPROBREF


A script may not export variables back to its parent process, the shell, or to the environment. Just as we learned in biology, a child process can inherit from a parent, but not vice versa.

WHATEVER=/home/bozo
export WHATEVER
exit 0

:~$ echo $WHATEVER

:~$

Sure enough, back at the command prompt, $WHATEVER remains unset.

vagyis, a büdös életben nem lehet scriptből exportálni úgy egy VALTOZO-t,
hogy aztán egy :~$ echo $VALTOZO ukázzal parancssorból, vagy egy másik parancssorból indított scripten belül lássam, hogy mi volt a megadott értéke.

Hozzászólások

Kiszeded az exit-et, es source-al tudod importalni a beallitott valtozokat.

nyos@hex:/tmp$ . izebigyo
nyos@hex:/tmp$ echo $WHATEVER
/home/bozo
nyos@hex:/tmp$ cat izebigyo
WHATEVER=/home/bozo
export WHATEVER
#exit 0

Ez persze nem uj process (ugy valoban nem megy), hanem a jelenlegi parse-olja az ottani beallitasokat.

--
akkor most free tibet vagy delete tibet a jó?? - falu

Az igény - két script üzengessen egymásnak -, nekem az IPC-t, legegyszerűbben FIFO-t juttatja eszembe. De annak semmi köze a környezethez.


# script A
mkfifo /tmp/fifo
echo "value" >> /tmp/fifo &
...

# script B
cat /tmp/fifo
...

hogyan is mukodhetne? :-)

--
NetBSD - Simplicity is prerequisite for reliability