Visit Our UNIX and Linux User Community


Setting environment variable using shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Setting environment variable using shell script
# 1  
Old 07-07-2010
Setting environment variable using shell script

Hi All,

I'm trying to write an menu driven program to automate some functions which involve loging to multiple hosts. The hosts can differ for every use, so I thought I would use an config file to get the hostnames. Now I need to set those values in the config file to environment variable to access by the menu script to login and proceed with the functions.

I tried to execute the config file from the shell script, but the environment variables are dying after the menu script is exited. The question is how to set those environment variable in the terminal for the complete session even after exiting the script, because if the menu gets failed in the 2nd or 3rd step and when the user tries to execute the script again it is mandating the user to run the config file inorder to set the env variables which is a pain for the user.

Please give your suggestions !!!

Thanks,
# 2  
Old 07-07-2010
You could try source'ing your config

Code:
$ source config.file

Or

Code:
$ . config.file

# 3  
Old 07-07-2010
If my understanding is right, the source command is used to use the external file for the menu script which it is being called. But my query is once I execute the config file the env variables should be set not only to the child process which is created but to the parent process where the menu script is executed.

please let me know if you couldn't catch my point.

Thanks for your help
# 4  
Old 07-07-2010
Arun
Newly set env variables are not available for the parent shell. However, if you need, what you can do is:

> Use 'printenv' command and redirect the output to a file from your function.
> Run this file once you are back in the main menu either using . or source depending on your shell.

Guru.
# 5  
Old 07-07-2010
Even though I run while returning back to the main menu it doesn't help me because once the script exits the env variables would die, so there is no way I can set the env variable to the parent process ??
# 6  
Old 07-07-2010
Arun
This is what i meant:

File f2:
Code:
#!/usr/bin/ksh

echo in file f2
export X="welcome"
printenv |grep -v printenv  | sed 's/^/export /' > f3

File f1:

Code:
#!/usr/bin/ksh

echo in main f1
f2
. f3
echo X is $X

On running the file f1:
Code:
in main f1
in file f2
X is welcome

X is set in the child shell f2, and we got it back in the parent f1.

Guru.
# 7  
Old 07-07-2010
Guru,

Thanks for the explanation.

Previous Thread | Next Thread
Test Your Knowledge in Computers #541
Difficulty: Medium
In a statically typed language, a variable cannot be declared before it can be used.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

STTY Columns Setting Environment Variable?

I am wondering about the following: stty columns 140 I have found that a number of times I need to set my display columns to a high number (such as 140) but I have to do this every time I login to use putty/ssh. Can we set this with an environmental variable so that it is permanent? Also... (4 Replies)
Discussion started by: newbie2010
4 Replies

2. UNIX for Dummies Questions & Answers

setting a environment variable on linux

I want to set a enviroment variable VDC_DIR to a particular directory. I am doing it as export VDC_DIR=/abc it gets set but when i logout and do relogin than its not there. one way could be setting it in .profile file. but i have seen it on another box where it is not present in... (2 Replies)
Discussion started by: Jcpratap
2 Replies

3. Shell Programming and Scripting

problem with setting environment variable

shell script: #!/bin/csh set VAR=12345 echo $VAR will peacefully give the output 12345 at shell. I need to use C++ to do the same in some part of the code: string str = "12345"; retValue="set var1= "+str; system(retValue1.c_str()); system("echo $var1"); This doesn't create a system... (1 Reply)
Discussion started by: harshvardhan360
1 Replies

4. Shell Programming and Scripting

Dynamically setting of environment variable... Can it be done?

Hi all, I am fairly new to unix scripting and will like to know how to dynamically set the name of an environment variable to be used. We have a .env file where we defined the names and locations of data files, trigger files, directories .... etc Example of variables defined in .env... (4 Replies)
Discussion started by: Morelia
4 Replies

5. Shell Programming and Scripting

Setting Environment variable from value in file

I've searched Google and now this forum. Best guess is my search fu is not good (and it probably isn't). The Google search did bring me here. Background I have a number of Korn Shell scripts who all use one of 3 values for an environment variable used in the backup system. On occasion one or... (8 Replies)
Discussion started by: WolfBrother
8 Replies

6. Programming

Setting Environment variable..!

Hi, I already have one CPP program which invokes the C program.And the C program contains whole function definitions..!This is a working program..I have to enable the logs in both CPP as well as in the C program ..!So I am reading the enviornmental variable log path from the CPP and doing the... (2 Replies)
Discussion started by: Kattoor
2 Replies

7. UNIX for Dummies Questions & Answers

setting environment variable in awk

Dear all, I have a data sample... Dose: Summed ROI: Bladder ************************** Bin Dose Volume 001 0.700 100.000 002 0.715 99.998 168 3.142 0.368 169 3.157 0.338 170 3.171 0.292 Dose: Summed ROI:... (2 Replies)
Discussion started by: tintin72
2 Replies

8. Programming

Setting environment variable using JNI call

I have function declaration in Java and same function definition written in C programming language.. A JNI call from Java is made to a fuction...Function would set the environment variable { putenv(cEnvString1);} using C-built -in function ..and later return the encrypted string... putenv is... (6 Replies)
Discussion started by: shafi2all
6 Replies

9. Shell Programming and Scripting

Setting environment variable on a remote solaris machine using shell script

Hi, I am trying to set environment variable on a remote machine. I want to do it by running a shell script Here's what I am doin rsh <remote-hostname> -l root "cd /opt/newclient; . ./setp.sh" In setp.sh, I have ############################# cd ../newlib; export... (1 Reply)
Discussion started by: eamani_sun
1 Replies

10. Programming

Setting Environment Variable date

Hi to all... I'm currently running a C++ program in Unix environment and it is dependent to a Unix environment variable with a date value. ex: echo $DateToday 20060403 I want to change that date in my C++ program, changing the value date to 20061120 and revert back to original... (6 Replies)
Discussion started by: d3ck_tm
6 Replies

Featured Tech Videos