KSH: Import File With Variables and Functions

Posted on in Categories last updated September 20, 2011

How do I import variables and functions defined in lib.ksh script to another ksh script called setup.ksh under Linux / Unix like operating systems? How do I execute commands from a file in the current KSH shell?

To read and execute commands from given FILENAME in the current shell use the following syntax:

. /path/to/file

OR

. /path/to/lib.ksh

The . (dot) is one of the KSH built-in commands. You can also use an alias called source as follows:

source /path/to/lib.ksh

Example

Create a script called /tmp/lib.ksh as follows:

#!/bin/ksh
# defaul values ##
vech="Bus"
rent=14
type="A/C"
 
 
# Display info
function showvech {
  printf "Vehicle: %s\n" $vech
  printf "Type (ac or non-ac): %s\n" $type
  printf "Rent (per/km): Rs.%d km\n" $rent
}
 
# Set info
function setvech {
  vech="$1"
  rent=$2
  type="$3"
}

Create a script called test.ksh:

#!/bin/ksh
 
# source our /tmp/lib.ksh
 
. /tmp/lib.ksh
 
# show defaults
showvech
 
# set new values and display it back
setvech "Jeep" 9 "Non-A/C"
showvech

Sample outputs:

Vehicle: Bus
Type (ac or non-ac): A/C
Rent (per/km): Rs.14 km
Vehicle: Jeep
Type (ac or non-ac): Non-A/C
Rent (per/km): Rs.9 km

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Leave a Comment