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: