Problem setting environment variables from script

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Problem setting environment variables from script
# 1  
Old 07-05-2010
Problem setting environment variables from script

Hi all!

I know that environment variables can be set on the .bashrc file, but I need to set them from a sh script. I saw a lot of websites that teach this but it doesn't work for me.
Code:
#!/bin/sh
DEKTOP=$DESKTOP=:/home/rrodrigues/Desktop
export DESKTOP

if I do echo $DESKTOP returns me nothing.

Why that?
# 2  
Old 07-05-2010
You have a typo in your code, this should work:

Code:
#!/bin/sh
DESKTOP=$DESKTOP:/home/rrodrigues/Desktop
export DESKTOP

Be aware, that this script does not change your login shell's environment. It only changes the environment of the script and commands invoked by this script.
# 3  
Old 07-05-2010
If your script is not .bashrc and you want to make the variable available in your shell environment (ie, the command line), then you must "source" the script like this:
Code:
 . myscript

# 4  
Old 10-19-2010
This also will work

#!/bin/sh
export DESKTOP=$DESKTOP:/home/rrodrigues/Desktop
# 5  
Old 10-19-2010
Quote:
Originally Posted by arunprasathj
This also will work

#!/bin/sh
export DESKTOP=$DESKTOP:/home/rrodrigues/Desktop
Not in my sh!
Code:
http://www.informatik.uni-frankfurt.de/doc/man/hpux/sh-bourne.1.html
 
      export [name ...]   The given names are marked for automatic export to
                          the environment of subsequently-executed commands.
                          If no arguments are given, a list of names
                          currently included in the environment are printed.
                          Function names cannot be exported.

The classic error is to run the environment script normally, as a child, and then only that child and its children get to see it, but then that child and its children end and the parent and next child are unaffected.

The trick is that after you set a variable, only you see it, but when you export the variable, the receiving process will be your child. The ". myscript" sourcing above runs the script in the current shell so it affects you and your children.

Scripts pathed $HOME/.(shell_name)rc like ~/.kshrc and ~/.bashrc are run automatically as the ksh or bash process comes to life, which is nice but excessively often, as script calls script after script. The bourne shell sh only uses ~/.profile, but for that reason and the superset offered in ksh, few people use it interactively. Other shell programs run ~/.profile once for the login shell only.
# 6  
Old 02-18-2011
Create a config file with the variables that you want to set.
The file will have variables like (this is just an example)
export TWO_TASK=GJEUGHD
export LD_LIBRARY_PATH_64=/opt/oracle/product/10.2.0/lib
export ORACLE_BASE=/oracle
export ORA_DEFAULT=true

Then source it

source /opt/cdrapp/config/env.cfg

Hope this helps.
# 7  
Old 02-18-2011
Quote:
source /opt/cdrapp/config/env.cfg
The "source" command is a "bash" command. Most other shells don't support it.
The dot-space-scriptname method works with most Bourne-type shells.
This User Gave Thanks to methyl For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Setting environment variables from a file :

Hi, I have around 10 environment variables in my shell script. i want to set this all in a file and just call that file in my shell script. How can i do that ? Please help. TIA! (6 Replies)
Discussion started by: qwertyu
6 Replies

2. Shell Programming and Scripting

setting environment variables with space

Hi, I'm having problems setting environment variable that has space value. Below is my shell script. export LINE=$@ TO=`echo $LINE | awk '{print $1}'` CC=`echo $LINE | awk '{print $2}'` BC=`echo $LINE | awk '{print $3}'` echo "TO=$TO" echo "CC=$CC" echo "BC=$BC" echo "1=$1" echo... (5 Replies)
Discussion started by: adshocker
5 Replies

3. UNIX for Dummies Questions & Answers

Setting up environment variables

Hi all, This is my first post here. I need to set up a few environment variables with a shell script. Some are hard-coded, but some should come from other commands or as input from the user. How do I do that? For example, I need to export a variable as such: export DISPLAY=127.0.0.1:8.0 ... (2 Replies)
Discussion started by: exchequer598
2 Replies

4. UNIX for Dummies Questions & Answers

Setting Environment Variables

#!/bin/bash if ; then ASS1_DATA_DIR=./ echo $ASS1_DATA_DIR export ASS1_DATA_DIR echo "data dir" fi if ; then ASS1_OUTPUT_DIR=./ export ASS1_OUTPUT_DIR fi I want to create a new environment variable ASS1_DATA_DIR and ASS1_OUTPUT_DIR in bash and set them to the current... (4 Replies)
Discussion started by: bigubosu
4 Replies

5. UNIX for Dummies Questions & Answers

Need help with setting up environment variables

hi all, I would appreciate if some one could explain me the difference between setting up the variables as shown below HOME=${HOME:-"/home/user1"} HOME=/home/user1 (1 Reply)
Discussion started by: SSSB
1 Replies

6. Shell Programming and Scripting

Help in Setting Environment variables in TCSH

Hello All, I am writing a script to set some environment variables which are required for a particular application. I understand that the environment variables set by Shell script can, at the max, be valid for the session. They will have to be set again once the session is closed and re-opened.... (1 Reply)
Discussion started by: kssandeep
1 Replies

7. Solaris

Setting environment variables within cron jobs!!

Is it possible to use environment variables within cron jobs. I am using a cron job to run a c program at regular intervals. The C program uses a library and i have set the library path in the LD_LIBRARY_PATH environment variable. But when i ran the job i got the error library not found!! Any... (1 Reply)
Discussion started by: atheek
1 Replies

8. Shell Programming and Scripting

Setting environment variables in Makefile

I've seen a few other threads like this, but they either went unanswered or failed to answer my question. How do I set an environment variable in a Makefile? What I'm trying to do is use GNU make to automate an ant build. In order to run ant, I've got to first set a few environment... (1 Reply)
Discussion started by: Bags
1 Replies

9. Shell Programming and Scripting

Setting up Environment Variables

Hi all, I am trying to set up some variables in a shell script. The variables contain values of various paths needed to run a java module. The problem is the variables dont seem to be setting at all. here is what i am trying to do : JAR_HOME=/home/was5/bdcms/scheduledjobs/lib export... (6 Replies)
Discussion started by: rpandey
6 Replies

10. UNIX for Dummies Questions & Answers

setting environment variables ???

Hello, I want to set some environment variables with this script: ip=$@ echo Remote Computer: $ip PERLDB_OPTS="CallKomodo=$ip:9000 RemotePort=$ip:9010 PrintRet=0" export PERLDB_OPTS PERL5LIB=/opt/komodo export PERL5LIB echo PERLDB_OPTS: $PERLDB_OPTS echo PERL5LIB: $PERL5LIB But it... (5 Replies)
Discussion started by: Gargamel
5 Replies
Login or Register to Ask a Question