Referencing: /Blog/B1073.html
This article is a follow up of my last article How and where to start writing first Shell Script in UNIX. It covers the shell variables, both User defined as well as system shell variable.
What is a variable?
A variable is a name associated with a value. It's a string that can be used to represent and manipulate your data.
In UNIX shell script programming you need not declare a variable. You just assign a value to it. There are two types of variables:
User shell variables
To use a variable just initialize it, there is no need to declare it.
Myname=rakesh
Age=20
In the above two lines Myname and Age are two variables having rakesh and 20 as the value associated to them respectively.
Remember "20" is a string not a numeric value and can't be used for mathematical operations. I shall explain how to do mathematical operations in my follow-ups.
Declaring a Null String
A null string can be declared in any of the following three ways:
variable=
variable=””
variable=’’
Making a value Read-Only
I don’t want to change the value of my variable inside the UNIX shell script accidentally.
readonly name=rakesh
Now the value of ‘name’ can’t be changed in your UNIX shell script. The read-only value can’t be even unset. I shall explain unset in the meantime. To get a list of all read-only variables type this on the prompt string
readonly
What is a valid variable name?
I wonder what a valid variable name is! What variable name should be given for better understanding of there usage and the associated value?
Only digits, alphabets and underscore ( _ ) are allowed in defining a variable name. Variable names are case sensitive, so Age and age are two different variables in UNIX shell scripts.
What is unset?
Unset erases all the reference of the variable from shell’s memory. To erase the value of variable ‘age’ type on the prompt string
unset age
This way you can use the same variable again in the program by associating a different value to it. Though you need not flush the value of a variable before reusing it but it’s a good practice to do show before associating a value of different data type to it.
System shell variables
Those who are familiar with the DOS shell might know what happens when you type set on the command prompt. It gives you the list of all environment shell variables. The environment shell variables are also known as system or public shell variables. Try doing the same with your UNIX shell. Type
set
on your prompt string and eventually you will get list of all system shell variables.
There are few commonly used system shell variables are
HOME
PATH
EXINIT
PS1
PS2
USER
SHELL
TERM
You can use these shell variables in your program.
How to print or use the value of the variable
Now please tell me how can I use these variables in my UNIX shell script.
In fact it’s very simple. All you need to do is to put a dollar ( $ ) before your variable name.
$varname
will give you the value ‘varname’ is holding. And to print the value type
echo $varname
More Articles by Rakesh Awasthi
/Blog/B1076.html copyright August 2004 Rakesh Awasthi All Rights Reserved
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar