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: 
If I understood the requirement then can't both scripts be simply executed in same sub shell, independently but **without** calling each other or without any need of an external file or pipe like this:

Let's say this is your **script1.sh**

```
#!/bin/bash
# script1.sh: do something and finally
export x=19

```

And here us your **script2.sh**

```
#!/bin/bash
# script2.sh: read value of $x here
echo "x="${x}

```

Just call them in same sub-shell like this

```
(. ./script1.sh && ./script2.sh)

```

**OUTPUT:**

```
x=19

```
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.