In bash, what is the effect of `export MYVAR`?

LPIC-1 Exam 102-500, objective 105. Shells and shell scripting easy

Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.

Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.

How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.

The options

Not correct It writes MYVAR's current value into ~/.bashrc so it survives the next login.

Wrong. export changes only the state of the running shell. Nothing is written to any file; persistence requires editing a startup file yourself.

Correct It marks MYVAR so that it is passed in the environment of commands the shell runs afterwards.

Correct. Exported variables are copied into the environment of child processes. Without export the variable remains a shell variable, visible to the current shell but not to programs it starts.

Not correct It makes MYVAR read-only so it can no longer be changed.

Wrong. That is `readonly MYVAR` (equivalently `declare -r MYVAR`), a different builtin. An exported variable can still be reassigned freely.

Not correct It removes MYVAR from the shell entirely.

Wrong. That is `unset MYVAR`. The related `export -n MYVAR` removes only the export attribute, keeping the variable as a plain shell variable.

Why

A shell variable becomes an environment variable when it is exported. `export MYVAR=value` combines assignment and export. `env` and `printenv` list exported variables only, while `set` with no arguments lists all shell variables and functions, which is why a variable can appear in `set` output and still be invisible to a child program.

Where this comes from

Cited
LPI exam objective 105.1
What it says
Set and export environment variables in the shell.

Practise this

Reading one question is not practice. The trainer will draw a short set from objective 105 and space the ones you get wrong.

Practise LPIC-1 Exam 102-500

More questions on this objective

All questions on Shells and shell scripting

Practise LPIC-1 Exam 102-500