02-09-2010
BASH Environment Variables as arguments?
1. The problem statement, all variables and given/known data:
Write a shell program called myenv which takes one argument. The argument should be the name of an environment variable, such as PATH HOME etc. myenv should print out the value of the variable given as the argument. If no argument is given, or the argument is invalid, your program could do unpredictable things!
e.g., myenv PRINTER
should print a line such as: PRINTER=kc3500
e.g., myenv HOME PRINTER
should print a line such as: HOME=/home/dwoit
2. Relevant commands, code, scripts, algorithms:
None that I can think of? Besides the basic start of #!/bin/bash
3. The attempts at a solution (include all code and scripts):
I'm not sure how to write this... I assume I could try setting the argument to a local variable within the script, but that's the next topic (local variables) so I don't think I have to. I know you can see the values of environment variables by typing in $ and then the one you want, so I tried doing ${"$1"} within the program but it doesn't work (I get a bad substitution error) and I have no idea how else to do it. Any help is appreciated, thanks.
#!/bin/bash
echo ${"$1"}
exit 0
4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
Ryerson University, Toronto, Canada, Denise Woit,
CPS393
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
what is the actual use of environment variables.
I know only PS1, LOGNAME, PS2 variables
what are the other variables & what is there use (2 Replies)
Discussion started by: indianguru
2 Replies
2. Programming
Hi!
How-to get the environment variables in GNU.
getenv() only fetches the ones that you can find under export (not the ones under declare)...
best regars .David (2 Replies)
Discussion started by: Esaia
2 Replies
3. UNIX for Dummies Questions & Answers
Hi Folks,
Is it possible somehow to unset all the environment variables which have been defined before in UNIX (Solaris).
Thanks,
Slava (3 Replies)
Discussion started by: spavlov
3 Replies
4. UNIX for Dummies Questions & Answers
hi,
1). i would like to know what is meant by environment variables?
2). is the number of envi variables is a constant number for unix systems?
3). how to see the list of envi variables (and the values of the envi variables)in a single command?
4). if this questions were already asked... (3 Replies)
Discussion started by: sekar sundaram
3 Replies
5. UNIX for Dummies Questions & Answers
why are all environment variables represented in a fixed format regardless of the shell you use?
like $HOME $PATH etc (6 Replies)
Discussion started by: sravani
6 Replies
6. Shell Programming and Scripting
Hello!
For the moment some settings in my .bashrc contain the password of my company's firewall, which is not a good idea. I would like to use the string "PASSWORD" set in .bashrc and a script that changes all appearances of "PASSWORD" in the environment variables by the actual password (which... (4 Replies)
Discussion started by: markolopa
4 Replies
7. Shell Programming and Scripting
I have read tons of posts about how you can't set persisting environment variable in a child script of a shell and have it persist. The only way is to source a file as
% . <scriptname>
I am finding that true... but I know there is a way around it. I just don't know how. I worked for 6... (5 Replies)
Discussion started by: rwa25
5 Replies
8. HP-UX
Hi Experts,
Need your help in understanding the commands to setup the environment variables in hp-ux.
Beleive need to use either set,setenv or export.
I am confused between above three options, when to use which option?
On command line, I have tried both set and setenv but couldn't... (1 Reply)
Discussion started by: sai_2507
1 Replies
9. Shell Programming and Scripting
Hi Guys,
I have a a bash script and i am exporting a variable in it.
I am calling a csh script from this bash script.
The variable "ABC" will be visible in csh script.
ks.bash
export ABC = abc
./kp.csh
ab.csh
echo $ABC
setenv ABC =cde (i want to assign this value to ABC only if... (4 Replies)
Discussion started by: vdhingra123
4 Replies
10. Shell Programming and Scripting
I have tried with the following:
csh -c 'source ~/.cshrc; exec bash' # works perfectly
(cat ~/.cshrc; echo exec bash) | csh # not working
And, using sed, I successfully retrieved the environment variables from ~/.cshrc
sed -rn 's/setenv\s+(\S+)\s+(.*)$/export \1=\2/p' ~/.cshrc
but now... (6 Replies)
Discussion started by: royalibrahim
6 Replies
LEARN ABOUT OPENSOLARIS
unset
set(1F) FMLI Commands set(1F)
NAME
set, unset - set and unset local or global environment variables
SYNOPSIS
set [-l variable [=value]] ...
set [-e variable [=value]] ...
set [-ffile variable [=value]]... ...
unset -l variable...
unset -f file variable...
DESCRIPTION
The set command sets variable in the environment, or adds variable=value to file. If variable is not equated it to a value, set expects the
value to be on stdin. The unset command removes variable. Note that the FMLI predefined, read-only variables (such as ARG1), may not be set
or unset.
Note that at least one of the above options must be used for each variable being set or unset. If you set a variable with the -ffilename
option, you must thereafter include filename in references to that variable. For example, ${(file)VARIABLE}.
FMLI inherits the UNIX environment when invoked.
OPTIONS
-l Sets or unsets the specified variable in the local environment. Variables set with -l will not be inherited by processes invoked
from FMLI.
-e Sets the specified variable in the UNIX environment. Variables set with -e will be inherited by any processes started from FMLI.
Note that these variables cannot be unset.
-ffile Sets or unsets the specified variable in the global environment. The argument file is the name, or pathname, of a file containing
lines of the form variable=value. file will be created if it does not already exist. Note that no space intervenes between -f and
file.
EXAMPLES
Example 1 A sample output of set command.
Storing a selection made in a menu:
name=Selection 2
action=`set -l SELECTION=2`close
NOTES
Variables set to be available to the UNIX environment (those set using the -e option) can only be set for the current fmli process and the
processes it calls.
When using the -f option, unless file is unique to the process, other users of FMLI on the same machine will be able to expand these vari-
ables, depending on the read/write permissions on file.
A variable set in one frame may be referenced or unset in any other frame. This includes local variables.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO
env(1), sh(1), attributes(5)
SunOS 5.11 5 Jul 1990 set(1F)