while loop
දැන් අපි කතා කරන්නෙ while loop ගැන බලන්න while loopඑකේ syntax එක while
[ condition ]
do
මෙතන ලියන සියලු කමාන්ඩ් රන් වීම සිදුවේ.
donewhile loop එකේ තියන විශේෂත්වය තමයි ලබාදීල තියෙන condition එක false වෙනකන් දීල තියෙන කමාන්ඩ් ටික රන් කරවීම. බලන්න පහල තියෙන උදාහරණය කන්ඩිශන් එක true නිසා ඉවරයක් නැතුවම එකම කමාන්ඩ් එක රන් වීම සිද්ධ වෙනව.
##########################################
#!/bin/sh
#
#Script to test while statement
#
#
while [ 5 -eq 5 ]
do
echo "Welcome to while loop "
done
##########################################
හදිස්සියෙ
වත් කොයි වෙලාවක හරි program
එක
ඇතුලෙදිම condition
එක
false
උනොත්
loop එක
රන් වෙන එක නවතිනව.
The case Statement
මේක
ගැන හොදටම තේරුම් ගන්න මුලින්ම
පහල තියෙන උදාහරණෙ බලන්න.
##########################################
#!/bin/sh
#
# if no vehicle name is given
#
# if no command line arg
if [ -z $1 ]
then
rental="*** Unknown vehicle ***"
elif [ -n $1 ]
then
# otherwise make first arg as rental
rental=$1
fi
case $rental in
"car") echo "For $rental Rs.20 per k/m";;
"van") echo "For $rental Rs.10 per k/m";;
"jeep") echo "For $rental Rs.5 per k/m";;
"bicycle") echo "For $rental 20 paisa per k/m";;
*) echo "Sorry, I can not gat a $rental for you";;
esac
##########################################
මේක
රන් කරන්න ඕන car
, van ,jeep ,bicycle යන
ඒවයින් මොකක් හරි පැරාමීටරයක්
එක වරකට යොදා ගෙන(වෙන
එකක් උනත් දීල බලන්න පුලුවන්)
මුලින්ම
බලන්න මේ කොටස දිහා
-Z
හා
-n ගැන
මම කලින් කියල තියෙනව
-Z
කියන්නෙ
string1
is NULL and does exist
-n
කියන්නෙ
string1
is NOT NULL and does exist
##############################################################
if
[ -z $1 ] # $1 වේරියබල්
එක හිස් නම් හා එහෙම එකක් පවතිනව
then
# නම්
rental="***
Unknown vehicle ***" # rental කියන
variable
එකට
**
Unknown vehicle *** assign කරන්න
elif
[ -n $1 ] # $1 වේරියබල්
එක නැත්නම් හා එහෙම එකක් පවතිනව
then
# නම්
#
otherwise make first arg as rental
rental=$1
# rental කියන
variable
එකට
$1 assign
කරන්න.
fi
###########################################################
ඊළගට
බලන්න මේ කොටස
"car") echo "For $rental Rs.20 per k/m";;
"van") echo "For $rental Rs.10 per k/m";;
"jeep") echo "For $rental Rs.5 per k/m";;
"bicycle") echo "For $rental 20 paisa per k/m";;
*) echo "Sorry, I can not gat a $rental for you";;
esac # අවසානය.
$rental
ගේ
අගය car
, van ,jeep ,bicycle යන
අගයන් උනොත් අදාල පණිවිඩය
echo
මගින්
print වීම
සිදු වෙනව.ඒහෙම
නොවුනොත් *)
මගින්
තියෙන ලයින් එක print
වෙනව.
මෙන්න
මේකට තමයි මේ case
statement කියල
හදුන්වන්නෙ.
මේ
තියෙන්නෙ මේකෙ syntax
එක.
case
$variable-name in
pattern1) command
...
..
command;;
pattern2) command
...
..
command;;
patternN) command
...
..
command;;
*) command
...
..
command;;
esac
මේක සමාන කරන්න පුලුවන් හරියට switch එකකින් light එකක් දානව වගේ වැඩකට. එක් ස්විව් එකකින් ඒකට අදාල බල්බ් එක පත්තු කරන්න පුලුවන්.
de-bug the shell script
අපි
ශෙල් program
කරනකොට
සමහර වෙලාවට ඒවයි තියෙන වැරදි
(errors
) හොයාගන්න
සිද්ධ වෙනව.හොයල
ඒව නිවැරදි කරන්න සිද්ධ වෙනව
මෙන්න මේකට අපි කියනව debug
කරනව
කියල.අපට
මේක කරන්න පුලුවන් -x
හා
-v
කියන
option
දෙක
භාවිතා කරල.
මේක
භාවිතා කරන්නෙ terminal
එකේ
ශෙල් ස්ක්රිප්ට් එක රන්
කරනකොට.
Syntax
එක
මෙන්න මෙහෙමයි.
sh
option
{ shell එකේ
name
එක.
}
අපි
මේක කරල බලමු.
අපි
මුලින්ම errors
තියන
ශෙල් ස්ක්රිප්ට් එකක් රන්
කරල බලමු මොකද වෙන්නෙ කියල.ඔයාලති
මේ ශෙල් එක ලියල රන් කරල බලන්න.
මේකෙ
වරද තියෙන්නෙ tot=
`expr $1 + $2` කියන
තැන කියල ඔයාලට පේනව නේද?
##########################################
#!/bin/sh
#
#
# Script to show
debug of shell
#
tot= `expr $1 +
$2`
echo $tot
######################################
මේක
රන් කරාම terminal
එකේ
expr:
syntax error කියල
පෙන්නුව නේද?
අපි
දැන් මේකට debug
options හාවිතා
කරල බලමු.
මුලින්ම
බලමු -x කියන
option එකත්
එක්ක රන් කරල. දැන්
ස්ක්රිප්ට් එක රන් කරන්න ඕන
sh -x script Name
කියල දැන්
ඔයාලට පෙනේවි ටර්මිනල් එකේ
මෙන්න මේ විදියට
+ expr +
expr: syntax error
+ tot=
echo
expr: syntax error
කියල පෙන්නන්නෙ
error එක
තියෙන තැන.
ඊළගට
බලමු අනිත් option එක
යොදාගෙන රන් කරල.
##########################################
#!/bin/sh
#
#
# Script to show
debug of shell
#
tot= `expr $1 +
$2`
expr: syntax error
echo $tot
##########################################
මෙන්න
මෙහෙම එකක් තමයි ටර්මිනල්
එකේ පෙන්නන්නෙ කලින් පෙන්නපු
විදියට වඩා මේ විදිය බලාගන්න
පහසුයි නේද? ගොඩක්
complex ස්ක්රිප්ට්
debug කරනකොට
මේකෙන් කරන එක තමයි පහසු.
ඔන්න
මෙතනින් structured shell script
පාඩම ඉවරයි
ඊළගට පටන්ගන්නෙ advanced
shell scripting
1 comments:
Thanks.
advanced shell scripting patan ganne neddo....
Post a Comment