Using Environment Variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using Environment Variable
# 1  
Old 04-28-2006
Using Environment Variable

In our current environment we have each of our testing levels on individual servers (running Korn shell). So, there is a server for dev and test, and 2 servers for qa and prod. I have several scripts that utilize a code that is dependant on the server where it resides. While I was the only person using these scripts, I had that value hard coded in my scripts (they were quick and dirty scripts). Now we have several folks that will be supporting this and I want to keep the scripts in a central repository and change this value to be an environment variable.

My thought is to set this as an environment variable in the users .profile. Then the scripts will use that variable, instead of having to change it for each server/test level.

My assumption, and from everything I've read, is that if I export the variable in my profile, it should be available to scripts when executed. But, that is not what I am seeing. And these scripts are executed by the user from the command line.

Here is an example. Any help would be appreciated.

.profile:
VAR=server_a
export $VAR

script:
some_command $VAR #executes command passing in $VAR


When I do this, $VAR does not seem to contain server_a. It is empty instead. However, if I echo out $VAR at the command line, it does equal server_a.

A solution that does seem to work, is to set the variable in a .kshrc file and execute that in my script prior to using it. But I would prefer to have it set in the profile and have it available for the scripts.

Any help would be appreciated. Thanx
# 2  
Old 04-28-2006
It is:
export var
not
export $var

But do you need that? The boxes should know their own names. I just use the hostname command when I want the hostname. "uname -n" is another possibility.
# 3  
Old 04-28-2006
/etc/profile and $HOME/.profile are sourced for login (Bourne compatible) shells.
That's probably why you see the exported variables set when you echo them from your login shell.
On the other hand if you need special settings for your sub shells as well
then export ENV in your .profile and let it point to an appropiate .shrc file in your HOME
Refer to the FILES section in the manpage of your shell.
Also note that if your script is for instance run from a cron job that it only gets a pretty rudimentary environment (see man crontab).
As for host or node names,
I often have such an export in my .profile
(you may have to separate assignment and export to two lines, and use backticks
if you don't have a Posix shell)

export NODENAME=$(/usr/bin/uname -n)
# 4  
Old 05-01-2006
OK, I feel like a moron. I dropped the $ from my export and it works fine. I should have caught that.

Thanks for the replies.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Solaris

Environment Variable

Hi All, I am new to SUN Solaris.I have some questions regarding environment variable.:confused: Q1. Where the environment variables available in Solaris. Q2. What command used here. Q3. Can a user change this .Suppose i want to change the bash to ksh can it be possible here. Or i need to... (2 Replies)
Discussion started by: jdash.ps
2 Replies

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

4. Shell Programming and Scripting

about environment variable

i am not clear at some places i saw that assigning a env var with colon ':' like export PATH=/usr/bin:/usr/ucb:/etc:/usr/sbin:.:/usr/platform/sun4u/sbin here you can find : and a . and again : could some one explain how it works... see all is starting from root directory, how : is used and... (6 Replies)
Discussion started by: Arunprasad
6 Replies

5. Solaris

Environment variable

Hello, For the moment, my LC_ALL variable is set as "" by default. If I want to change this value, I do : export LC_ALL="en_fr" for example. That I want to know it's : how can I set by default this value ? I want to save it on my profile in order to get it when I open my session... :confused:... (2 Replies)
Discussion started by: MasterapocA
2 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

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

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

9. UNIX for Advanced & Expert Users

help on environment variable

what is the environment variable used for getting the <machine name> . hello $LOGNAME,welcome to <??> I want to print the machine name in the place of <??> Please help. (6 Replies)
Discussion started by: mehuldoshi
6 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