Monday, April 23, 2012

KSH: Import File With Variables and Functions

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

No comments:

Post a Comment