 |
|
Oracle Shell Scripting
Oracle UNIX/Linux script tips
|
Shell Variables
Shell variables give us a place to store values
for use by the system, our shell, shell scripts or by programs we
run. Each session in UNIX has a set of variables that collectively
are referred to as the environmental variables.
Also see find
ORACLE_HOME and find
ORACLE_SID scripts.
These variables
tell the system where to find applications and documentation, where
the user's home directory is, the current working directory and much
more. You can easily view all the environmental variables in the
current session with the env command:
$ env
TERM=vt102
SHELL=/bin/bash
SSH_CLIENT=192.168.2.1 54620 22
OLDPWD=/export/home/oracle
SSH_TTY=/dev/pts/1
USER=oracle
MAIL=/var/mail//oracle
PATH=/usr/bin:/usr/ucb:/etc:.
PWD=/u01
TZ=US/Eastern
PS1=$
SHLVL=1
HOME=/export/home/oracle
LOGNAME=oracle
SSH_CONNECTION=192.168.2.1 54620 192.168.2.100 22
_=/usr/bin/env
These are some of the default variables provided
by the system. As Oracle users we?re also familiar with shell
variables such as $ORACLE_HOME and $ORACLE_SID.
While most of the environmental variables in the
output above are set by the system, variables like $ORACLE_HOME
need to be set by the user. In the bourne and bash shells,
environmental variables are set by giving the variable name, the
equal sign (=) and then the value the variable should be set
to. The variable must then be exported with the export
command so it can become available to subsequent commands.
$
ORACLE_HOME=/u01/app/oracle/product/10.2.0/Db_1
$ export ORACLE_HOME
$ echo $ORACLE_HOME
/u01/app/oracle/product/10gR2/db_1
When setting variables you simply use the
variable name; however, as we see in the above example we use the
$ prefix to retrieve the value of a variable. You may also see
the variable definition followed by the export on the same line
separated by a semicolon. The semicolon marks the end of the first
command allowing the commands to be executed as if they were on
separate lines.
These exported environmental variables typically
affect how UNIX and Linux behave or how other commands run. Though
not a rule, environmental variable names are typically all
uppercase. Lowercase variable names are typically used for local
shell variables that are only needed in the current session or
script. Local shell variables need not be exported.
$
day=Monday
$ echo $day
Monday
It's important to remember that shell variables
are specific to a session, not a user. That means if you change the
environment variables in one session it will not have any effect on
other active sessions.
Beyond the familiar Oracle related shell
variables we?ll be using shell variables for storing date
information, file and directory names, passwords and much more.