setenv.


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users setenv.
# 1  
Old 12-06-2008
setenv.

helllo every body ..
hope you are having good time programming in unix .

here is a little problem faced me :
Code:
setenv("myvar","bla bla",1); 
system("myvar=$(grep....)); 

printf("%s\n", getenv("myvar"));

will print :
bla bla ..

how can i get the value of grep into my program ?
what i figurd out that is after
Code:
system("myvar=hello");

myvar will have the same old value,
but:
Code:
system("myvar=hello; echo $myvar");

will pring hello without changing myvar value.
# 2  
Old 12-06-2008
The system function runs the command in a subshell (child) and parent shells don't inherit variables of childs.

Regards
# 3  
Old 12-06-2008
what if you invoke your script with a "source scriptname" ?
# 4  
Old 12-06-2008
Quote:
Originally Posted by npatwardhan
what if you invoke your script with a "source scriptname" ?
you mean running
Code:
VAR=$( ...)

in seperate script ?
it dosn't work Smilie

Last edited by max_475; 12-06-2008 at 02:09 PM..
# 5  
Old 12-06-2008
Quote:
Originally Posted by Franklin52
The system function runs the command in a subshell (child) and parent shells don't inherit variables of childs.

Regards
i thought something like this is happning,
do you think learning more about "fork" will help me?
# 6  
Old 12-07-2008
Use the popen function, this is an example to set a environment variable with a value fetched with a shell command:

Code:
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
        FILE *pipein;
        char readbuf[80], Myvar[80];

        if ((pipein = popen("pwd", "r")) == NULL)

        {
                perror("popen");
                exit(1);
        }

        fgets(readbuf, 80, pipein);
        close(pipein);

        setenv(Myvar, readbuf, 1);

        printf("%s", getenv(Myvar));

        return(0);

}

Regards
# 7  
Old 12-13-2008
I'm from the ubuntuforum, we used to have a "thanks" buttom to express our appreciation!

Thank you, works like magic.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cshell setenv: Too many arguments.

i have in c-shell set value_str ="one three" set line_seprator = "," set value_and_sperator = "$value_str$line_seprator" setenv STRING_CONCAT $STRING_CONCAT$value_and_sperator and im getting error: setenv: Too many arguments. this is... (1 Reply)
Discussion started by: umen
1 Replies

2. Solaris

setenv: cannot add the LD_LIBRARY_PATH

Hi all! I need to add new environment variable. e.g. # setenv LD_LIBRARY_PATH "/usr/ucblib:" # I check:# env LD_LIBRARY_PATH=/usr/ucblib: After rebooting I don't see this variable. Why don't save this variable? Thanks. (5 Replies)
Discussion started by: wolfgang
5 Replies

3. UNIX for Dummies Questions & Answers

whats setenv in unix

Hi whats the setenv command in unix..?? i have set the oracle_home path as aa.ii.1 in kron_settings and mentioned setenv oracle_path as aa.ii.2 in user settings. Does this make any changes made to the path name of the oracle_home when i run a scripts in unix..???:( (1 Reply)
Discussion started by: abhi_123
1 Replies

4. Shell Programming and Scripting

setenv error

I am having the following environment setup script. $cat dbenv.sh #! /bin/csh # set history=32 stty sane setenv ORACLE_HOME=/dboracle/orabase/product/10.1.0.3 set ORACLE_BASE=/dboracle/orabase set... (2 Replies)
Discussion started by: rahulrathod
2 Replies

5. UNIX for Dummies Questions & Answers

difference between EXPORT and setenv

Hi, Is there any difference between setting an environment variable by EXPORT and by setenv? (3 Replies)
Discussion started by: dexkid
3 Replies

6. Shell Programming and Scripting

setenv in script

Is it possible to set environement variable in a script (for example, perl script) so that the variable will be set after exiting the script - in a father shell. (2 Replies)
Discussion started by: kosta_mirkin
2 Replies

7. Shell Programming and Scripting

How do I set permanent setenv !!!

Hello, I just want to know ow I can set permanent pathes or whatever using setenv command. I'm using c shell . regards, me (1 Reply)
Discussion started by: geoquest
1 Replies

8. Shell Programming and Scripting

What 's setenv?

Hi Is someone know about "setenv"? where can i find out this one? Regards Myoe (2 Replies)
Discussion started by: myoeminn
2 Replies

9. UNIX for Dummies Questions & Answers

set, setenv

Well first of all I am a real Unix newbie. I am taking a course on it in University. I kind of understand set and setenv but, I think it si something that I should really understand. So I thought that I would try a forum out and see how good you guys really are. The question: Execute the... (1 Reply)
Discussion started by: w6u6f
1 Replies

10. UNIX for Dummies Questions & Answers

setenv Question

I want to add paths to a CLASSPATH variable but if I use the : setenv CLASSPATH /opt all previous entries are erased. How do I append additional entries to a system variable without overwriting the original value. Thanx (3 Replies)
Discussion started by: ianf
3 Replies
Login or Register to Ask a Question

Featured Tech Videos