Korn Shell Variables

by on July 2, 2007 · 3 comments· LAST UPDATED July 2, 2009

in , ,

What is a shell variables? How do I define and use a variable under korn shell?

A variable is nothing but a symbolic name associated with a value and whose associated value may be changed.

Variables is used by the Korn shell to store values. Setting variables within a script or at a shell prompt is pretty simple. Define a variable called IP and BASE as follows:

IP="foo"
BASE="/nas/backup"

To display variable, use:

echo $IP
echo $BASE

Rules For Naming Korn Shell Variables

  1. Korn shell variable names can begin with an alphabetic (a–Z) or underscore character.
  2. Other variable names that contain only digits (0–9) or special characters (!, @, #, %, *, ?, $) are reserved for special parameters set directly by the Korn shell.

How Do I Create a Null Variable?

Simply use the following syntax:

DIR=

If a value is not given, the variable is set to null.

Common Shell Variable Examples

Set backup directory path:

BACKUPROOT=/iscsi/mysql

Store date and time:

NOW=$(date)

Set file path

HTTPDCONF=/etc/httpd/httpd.conf

A Sample Shell Script Using Variables

#!/bin/ksh
NOW=$(date)
DNSCONF="/etc/resolv.conf"
SERVERNAME=$(hostname)
OS=$(uname)
 
echo "Your OS : $OS"
echo "Server Name : $SERVERNAME"
echo "Current date and time : $NOW"
echo "Client DNS Config file - $DNSCONF"
echo "----------------------"
cat $DNSCONF

typeset Command

Use typeset to define variable attributes. Some common examples:

Set the type of variable to be integer

typeset -i x=10
typeset -i y=10
typeset -i z=$(( $x + $y ))
echo "$x + $y = $z"

Set the type of variable to be float

typeset -F PI=3.14
echo $PI

You can also use it as follows:

typeset -F3 PI=3.14159
echo $PI

How Do I Store Command Output To a Variable?

Variables can be assigned command output using the following format:

variable=$(command)

or

variable=`command`

For e.g. store hostname to a variable called HOST, enter:

HOST=`hostname`
echo $HOST

OR

HOST=$(hostname)

How Do I Define Read Only Variable?

Set the readonly attribute using typeset command:

typeset -r BASE=/iscsi

If you try to make change, you will be greeted with an error message:

BASE=foo

ksh: BASE: is read only

ksh shell programming, unix ksh variable,ksh positional parameters,ksh variable substitution,bin ksh,ksh shell script

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 3 comments… read them below or add one }

1 Unknown January 31, 2013 at 7:07 am

thanx “_”

Reply

2 joseph February 12, 2013 at 9:32 am

My command goes like this in Ksh

filee =$(ls -lrt filename|tail -1|cut -d” ” -f1)
cat $filee

or
filee =`ls -lrt filename|tail -1|cut -d” ” -f1`
cat $filee

However i am not able to get the required output.

Reply

3 simon July 3, 2013 at 1:57 pm

@joseph, there must not be any spaces around the “=” on the command line:
filee=`ls -lrt filename|tail -1|cut -d” ” -f1`

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: