2013-01-02

ලිනක්ස් Shell Programming පාඩම-කොටස 11


  1. ඇයි මේ Command Line arguments අවශ්‍ය වෙන්නෙ.

ප්‍රධාන කාරණා දෙකක් තියෙනව.
      1. කමාන්ඩ් එකට අවශ්‍ය option එකක් ලබා දීමට.
        echo -e “mad”
        මේකෙ මේ -e කියල තියෙන්නෙ පළමු argument එක ඒක echo කියන command එකේ option එක.
      2. කමාන්ඩ් එකට මොන files reading and writing කරන්න ඕන කියල ලබා දෙන එක.
        rm කියන කමාන්ඩ් එකෙන් පුලුවන් file එකක් remove කරන්න ඒ කිව්වෙ delete කරන්න ඉතින් එහෙම කරන්න මොන file එකද අයින් කරන්න ඔන කියල කමාන්ඩ් එකට දෙන්න ඔන. ඒක කරන්නෙ මෙහෙමයි.
rm file එකේ නම
rm filename
ඊළඟට බලමු කොහොමද command line arguments අපේ shell ස්ක්‍රිප්ට් එකට pass කරන්නෙ කියල.
අපි හදපු my.shell කියල ශෙල් script එකක් තියනව කියල හිතමු. දැන් ටර්මිනල් එකෙන් ඒක රන් කරමු 24 කියන argument එකත් pass කරගෙන.
./my.shell 24
මේවගේ අපට කැමති arguments ගණනක් pass කරන්න පුලුවන්.ඊළඟට බලමු කොහොමද අපි ටර්මිනල් එකෙන් පාස් කරපු arguments ශෙල් එක ඇතුලෙදි අල්ල ගන්නෙ කියල.අපි හිතමු අපි අපි argument තුනක් පාස් කරා කියල ඒ තුන අපට $1 , S2 , $3 කියල හදා ගනිපු වේරියබල් තුනකින් ඒ පාස් කරපුව අල්ල ගන්න පුලුවන්. සරලවම කිව්වෙත් $1 කියල හදපු වේරියබල් එකට පළමු argument එකත් $2 ට දෙවනි argument එකත් S3 ට තුන්වෙනි argument එකත් assign වෙනව.තවමත් පැහැදිලි නැත්තම් මේ උදාහරණය බලන්න.


අපි මුලින්ම හදාගනමු my.shell කියල script එකක් ඒකෙ මෙන්න මෙහෙම ටයිප් කරල save කරගන්න.
#########################################

# gedit my
#!/bin/bash
# Catch arguments
# sh scriptname 1 2 3

echo "My 1st Argument is : $1"
echo "My 2nd Argument is : $2"
echo "My 3rd Argument is : $3"
#########################################

දැන් ටර්මිනල් එකේ මේක රන් කරනකොට මෙන්න මේ විදියට argument තුනකුත් එක්ක රන් කරන්න.
./my.sh 5 9 4
resutl එක මෙන්න මේ විදියට පෙනේවි.

My 1st Argument is : 5
My 2nd Argument is : 9
My 3rd Argument is : 4
අපි පාස් කරපු එක shell එක ඇතුලෙදි අල්ලගෙන ප්‍රින්ට් කරපු එක තමයි මෙතනදි සිද්ද උනෙ.තව වැදගත් වෙන දේවල් කිහිපයක් බලමු ඊළඟට
01. $0 කියන වේරියබල් එකක් හැදුවොත් ඒකට assign වෙනව shell එකේ නම. 
02.$* හරි $@ කියන ඒවයින් ටර්මිනල් එකෙන් එවන argument  
   ඔක්කෙම  එක පාරට අල්ල ගන්න පුලුවන්.

මේ උදාහරන කරල බලන්න ඒවයින් තේරුම් ගන්න පුලුවන් ලේසියෙන්ම.

Arguments කැමති ගානකුත් එක්ක මේක රන් කරන්න.

#########################################

# gedit my
#!/bin/bash
# Catch arguments
#
echo "My Arguments are : $@"
#########################################



Arguments තුනක් එක්ක මේක රන් කරන්න.

#########################################

# gedit my
#!/bin/bash
# Catch arguments
#
echo "My Argument name is : $0"
echo "My Arguments are : $1"
echo "My Arguments are : $2"
echo "My Arguments are : $3"
#########################################

තව මතක තියා ගන්න ඕන කරුණක් තමයි $0,$2,$3 කියල අර්ගියුමන්ට් අල්ල ගන්න වේරියබල් අපට script එක ඇතුලෙ ආයෙ භාවිතා කරන්න බැරි බව.

නැවත හමුවෙමු.  

කට්ටිය අපේ ලිනක්ස් Communtiy  එකට උදව් දෙන්නත් ඕන කියල මතක තියාගන්න.

 

Share:

1 comments:

Anonymous said...

කියලා තියෙන ඒවානම් නොතරේ නමුත් පුලුවන්නම් Linux වල ZTE Dongel එකක් Intsall කරගන්නා ආකරය ගැන ලිපියක් ලියන්න. මම Ubuntu 10.10 වල එකක් Install කර ගන්න බැරිව කලක ඉදන් තවම ඒ ගැන හොයනවා.