Question: I have two independently running scripts.
first one lets say script A calculates some values. And i want to echo these values from other script called B. These scripts will not call each other. I have used export keyword but didn't work. How can i do this?

Answer: 
```
 mkfifo /tmp/channel

 process_a.sh > /tmp/channel&
 process_b.sh < /tmp/channel&

 wait

```

Of course you can also just read a single line when you want it.

In bash there are coprocs, which also might be what you want. Random example from [this page](http://wiki.bash-hackers.org/syntax/keywords/coproc)

```
# let the output of the coprocess go to stdout
{ coproc mycoproc { awk '{print "foo" $0;fflush()}' ;} >&3 ;} 3>&1
echo bar >&${mycoproc[1]}
foobar

```

ksh has a similar feature, apparently
Think of each script as a function: function A calculates some value and returns it. It does not know who will call it. Function B takes in some value and echo it. It does not care who produced that value. So, script A is:

```
#!/bin/sh
# a.sh: Calculate something and return the result
echo 19

```

and script B is:

```
#!/bin/sh
# b.sh: Consume the calculated result, which passed in as $1
echo The result is $1

```

Make them executable:

```
chmod +x [ab].sh

```

Now, we can glue them together on the command line:

```
$ b.sh $(a.sh)
The result is 19

```

Semantically, b.sh did not call a.sh. You called a.sh and passed its result to b.sh.