Home » Questions » Computers [ Ask a new question ]

Difference between "a=b" and "export a=b" in bash

Difference between "a=b" and "export a=b" in bash

What's the difference between:

Asked by: Guest | Views: 28
Total answers/comments: 2
Guest [Entry]

"export propagates the variable to subprocesses.

For example, if you did

FOO=bar

then a subprocess that checked for FOO wouldn't find the variable whereas

export FOO=bar

would allow the subprocess to find it.

But if FOO has already been defined as an environment variable, then FOO=bar will modify the value of that environment variable.

For example:

FOO=one # Not an environment variable
export FOO # Now FOO is an environment variable
FOO=two # Update the environment variable, so sub processes will see $FOO = ""two""

Older shells didn't support the export FOO=bar syntax; you had to write FOO=bar; export FOO."
Guest [Entry]

"Also, if you want to have the variable available to the calling shell without using export you can do this:

File a.ksh is -

#!/bin/ksh
FOO=bar

On the prompt, run this is

> . a.ksh

This will run the commands within the same shell and $FOO will be available.

Whereas,

> a.ksh

Will make $FOO available only within a.ksh, after the call to a.ksh it would not exist."