Environment variable definition


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Environment variable definition
# 1  
Old 08-16-2015
Environment variable definition

I'm a bit confused about the term ‘environment variables'.
Within your shell you can set two types of variables:

1. Shell variable - affecting functionality within your shell
2. User defined variable

When using the ‘export' command on a variable you make sure it's being inherited by new sub shells / sub processes.
After using the ‘export' command on a user defined variable it will be showed by the command ‘env' - not before exporting it.

Now the confusing part.
After looking up the definition of ‘environment variables' on multiple sites it is being described as being the ‘shell variables'.
But why is an exported ‘user defined variable' being showed by the ‘env' command?
This is implying that exporting a variable makes it part of the ‘environment' so the definition is based on the inheritance and not the effect on the shell.
But the command ‘env' is already showing the shell variables that are not exported that contradicts the above. Smilie

---------- Post updated at 12:12 PM ---------- Previous update was at 11:39 AM ----------

I've found a site that is stating ‘environment variables' are defined as exported variables that are available to sub shells. (at support.sas.com)

This matches the fact that exported ‘user defined' variables are shown by the ‘env' command.
It can be confusing that a lot of books / sites are referring to an environment variables as being a shell variable in general.

Last edited by Scrutinizer; 08-16-2015 at 01:52 PM.. Reason: Typo
# 2  
Old 08-16-2015
Hi, for Posix compliant shells:
  • There are shell variables and environment variables
  • When a shell starts it makes a copy of the environment variables and creates shell variables with the same name and value, with the export attribute set (marked for export)
  • If new shell variables are created in a shell, then they are not marked for export
  • The export command sets the export attribute of the shell variables (marks them for export).
  • A subprocess inherits all shell variables marked for export (and also variable assignments that are part of the command)
  • A subshell is a special kind of subprocess that inherits all shell variables, even those not marked for export.
  • The env command (since it is executed as a subprocess) shows the environment variables that would be inherited by a subprocess.
subshells are created implicitly by the shell syntax or explicitly using parentheses ( .... )

Last edited by Scrutinizer; 08-16-2015 at 04:04 PM..
# 3  
Old 08-16-2015
Thank you for the answer. It's clear now.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Variable definition inside mysql query

Hello, I am running ubuntu16.04. By means of @Rudic's help, I have below command. What I need to do is to replace video_id by value of video_id in which WHERE clause is matched: {print "INSERT INTO video_series_files (id, video_id, file_type, protocol, \ url, languages, quality, accessed... (12 Replies)
Discussion started by: baris35
12 Replies

2. UNIX for Advanced & Expert Users

Variable definition

Hi all, I'm bit new to the advanced bash shell scripting. When I'm looking at some of the existing code in my organization, got confused with a few variable definings. For ex: var1={1:-30} var2="abc def ghi" var3={xyz:-$var2} In above, 1st and last lines are confusing me.... (4 Replies)
Discussion started by: raghu.iv85
4 Replies

3. Shell Programming and Scripting

Expand an environment variable in sed, when the variable contains a slash

I'm trying to make a sed substitution where the substitution pattern is an environment variable to be expanded, but the variable contains a "slash". sed -e 's/<HOME_DIRECTORY>/'$HOME'/'This gives me the following error: sed: -e expression #1, char 21: unknown option to `s'Obviously this is... (2 Replies)
Discussion started by: Ilja
2 Replies

4. UNIX for Dummies Questions & Answers

Environment variable

Hi! Ok, so I'm no programmer and I have basically no experience in these stuff. However I need to work on a thing (I think you call it Framework) called Root. It's a tool used by physicists. In the manual they keep talking about Environment variable. Even thou I searched for what it is on the... (5 Replies)
Discussion started by: tirwit
5 Replies

5. Shell Programming and Scripting

How to define a variable with variable definition is stored in a variable?

Hi all, I have a variable say var1 (output from somewhere, which I can't change)which store something like this: echo $var1 name=fred age=25 address="123 abc" password=pass1234 how can I make the variable $name, $age, $address and $password contain the info? I mean do this in a... (1 Reply)
Discussion started by: freddy1228
1 Replies

6. Shell Programming and Scripting

environment variable

Hi, I have to set bunch of variables and all other programs like make, perl will use them .. Here are my constraints and requirements ... The variables have to be set by executing a script that runs in c shell. I cannot source the script since people who use this script might be on... (8 Replies)
Discussion started by: sharanbr
8 Replies

7. Shell Programming and Scripting

What wrong with the variable definition

i am using the below script and trying to move files in that directory in that pattern to archive. But it doesn;t seem to take the metacharacters. Please sugggest. Code Debug output: (1 Reply)
Discussion started by: dsravan
1 Replies

8. Shell Programming and Scripting

Environment Variable

First of all I am using C shell. I have a variable destDirectory that holds a path. the path includes an environment variable($user) when I try to execute a command within the script, the $destDirectory gets replaced with the path, but the environment variable is not replaced. I end up... (2 Replies)
Discussion started by: karyn1617
2 Replies

9. UNIX for Dummies Questions & Answers

Environment Variable

$ . oraenv (when i type this at the prompt) ORACLE_SID = ? ( I get this) I understand that . oraenv is a startup script and it has the ENV variable ORACLE_SID. But pls let me know what more it explains and also how to change the env variable here. (2 Replies)
Discussion started by: thumsup9
2 Replies

10. UNIX for Dummies Questions & Answers

Environment Variable

Hello, I need some help to understand system and user environment files, such as .profile and others. I can edit my .profile file in my home directory. What I only touch in this file is the $PATH variable and when I am logged in under a telnet session, the PATH that I specify is used and... (8 Replies)
Discussion started by: jacobsa
8 Replies
Login or Register to Ask a Question