
Shell Scripting සිංහලෙන්
12/28/2009 12:52 am By Sameera Shaakunthala | Articles: 10
ලිනක්ස් පාරිසරිකය තුළ දී shell script සකස් කර ගන්නා ආකාරය පිළිබඳ මෙම ලිපි පෙළින් ඉදිරිපත් කෙරේ. පසු ගිය කලාපයේ සාකච්ඡා කරන ලද්දේ Shell තුළ ගණිත කර්ම පාවිච්චි කරන ආකාරයයි. මෙවර ලිපියෙන් අප සාකච්ඡා කිරීමට බලාපොරොත්තු වන්නේ ලිනක්ස් හි සම්මත ආදානය (standard input), සම්මත ප්රතිදානය (standard output), echo හා read විධාන පිළිබඳවයි.
සම්මත ආදානය සහ ප්රතිදානය
“පරිගණකය” සරලව නිර්වචනය කළහොත් එය, එය වෙත ලබා දෙන දත්තයක්/ දත්ත සැකසුම් වලට ලක් කර මිනිසාට ප්රයෝජනවත් තොරතුරු ලෙස පිටතට (output) ලබා දෙන, ක්රමලේඛණය කළ හැකි ඉලෙක්ට්රොනික මෙවලමකි. පරිගණකය වෙත දත්ත ලබා දීමට අදාන උපකරණත් (input devices), පරිගණකය වෙතින් පිටතට තොරතුරු ලබා දීමට ප්රතිදාන උපකරණත් (output devices) භාවිතා වේ. පරිගණකය විසින් පෙරනිමියෙන් (by default) දත්ත ලබා ගන්නා උපකරණය හෝ උපක්රමය සම්මත ආදානය (standard input, stdin) ලෙසත්, පෙරනිමියෙන් තොරතුරු පිටතට ලබා දෙන උපක්රමය හෝ උපකරණය සම්මත ප්රතිදානය (standard output, stdout) ලෙසත් හැඳින්වේ. මීට අමතරව ඇති විය හැකි දෝෂ (errors) පිළිබඳ ප්රතිදානයක් ලෙස සම්මත දෝෂ ප්රතිදාන උපක්රමයක් (standard error, stderr) ද භාවිත වේ.
සම්මත ආදානය සාමාන්යයෙන් පරිගණකයේ යතුරුපුවරුව යි. එමෙන්ම, සාමාන්ය සම්මත ප්රතිදානය හා දෝෂ ප්රතිදානය ලෙස සැලැකෙන්නේ ටර්මිනලය යි. නමුත් ලිනක්ස් භාවිතයේ දී අපගේ අවශ්යතාව පරිදි ඒ ඒ විධානය භාවිත කරන විට මේ සම්මත ආදානය හා ප්රතිදානය විය යුත්තේ කුමක්ද යන්න අපට අවශ්ය පරිදි ඒ ඒ අවස්ථාවේ දී පාලනය කළ හැකි ය.
උදාහරණ:
පහත දැක්වෙන විධාන වෙන වෙනම ලබා දී බලන්න.
echo "This text is output"
echo "This text is output" > output-test.txt
මෙම උදාහරණයේ පළමු විධානය ලබා දුන් විට එහි උදෘත සළකුණු අතර ඇති පාඨය තනි පෙළක් ලෙස ටර්මිනලයෙහි දිස් වනු ඔබට දක්නට ලැබෙනු ඇත. නමුත් දෙවැන්න ටර්මිනලයෙහි කිසිවක් දර්ශනය නොකරයි. ඊට හේතු වන්නේ දෙවැන්නෙහි ප්රතිදානය නොහොත් පෙර කී පාඨය output-test.txt නම් ගොනුවක් වෙත හරවා යවා (redirect) තිබීම යි. මෙහිදී අදාළ ගොනුව පරිගණකයේ දැනට නොපවතී නම් අළුතින් නිර්මාණය වන අතර, දැනට පවතින එකක් නම් එය මත නව ගොනුවක් ලියැවීම සිදු වනු ඇති.
*** යම් ලිනක්ස් විධානයක ප්රතිදානයක් හරවා යැවීමට අවශ්ය නම් අවශ්ය විධානය සටහන් කර, > සලකුණට පසුව ප්රතිදානය ගමන් කළ යුතු ස්ථානය ලබා දීමෙන් අදාළ ප්රතිදානය හරවා යැවිය හැකි ය. සාමාන්යයෙන් මෙය ලබා දෙන්නේ ගොනුවක් ලෙස ය. නව ගොනුවක් නො ලියැවා හෝ දැනට පවතින ගොනුවක් ප්රතිස්ථාපනය (overwrite) නොකර, ප්රතිදානය දැනට තිබෙන ගොනුවක අගට එක් කිරීමට අවශ්ය නම් > වෙනුවට >> භාවිත කළ යුතු ය.
සම්මත ආදානය පිළිබඳව දක්වා ඇති පහත උදාහරණය අත්හදා බලන්න. මේ උදාහරණය සඳහා යොදා ගෙන ඇත්තේ grep විධානයයි. grep විධානය මගින් සිදු කෙරෙනුයේ දෙන ලද රටාවකට ගැළපෙන පාඨ පේළි, සම්මත ආදානයෙන් තෝරා ගෙන ඒවා සම්මත ප්රතිදානයේ දර්ශනය කරවීමයි. පළමුව folks.txt නමින් නව ගොනුවක් නිර්මාණය කර, එහි පහත දැක්වෙන පේළි කිහිපය සටහන් කර සුරකින්න.
The quick brown fox jumps over the lazy dog
High jump is a sport
The thief jumped over the fence
Boeing 747 is a jumbo jet
දැන් පහත දැක්වෙන විධානය ලබා දෙන්න.
grep jump < folks.txt
මෙහිදී, ඔබ විසින් නිර්මිත ගොනුව තුළ ඇති, jump යන පාඨ කොටස අඩංගු පේළි සියල්ල එකක් යට එකක් වශයෙන් සම්මත ප්රතිදානයේ දිස් වනු ඇත.
මීළඟට, පහත දැක්වෙන විධානය ලබා දී බලන්න.
grep jump
(මින් ඉවත් වීමට අවශ්ය නම් Ctrl+C යතුරු සංයෝජනය යොදන්න)
මෙහිදී නැවත ඔබව prompt එක වෙත යැවීම වෙනුවට ඔබට යතුරුපුවරුව මගින් යම් පාඨ නිවේශනය කිරීමට අවස්ථාවක් ලබා දෙනු ඇත. ඉහත පළමු අවස්ථාවේ දී අදානය වූයේ folks.txt ගොනුවයි. සම්මත ආදානය ගොනුවක් වෙත හැරවීමට < සලකුණ පාවිච්චි කළ හැකි බව ඔබට පැහැදිලි වනු ඇත. නමුත් දෙවන අවස්ථාවේ දී ආදානය සම්මත ආදානයම යි. එහිදී ඔබ විසින් නිවේශනය කරන සෑම පාඨ පේළියකම jump යන කොටස ඇතුළත් වුවහොත් එම පාඨ පේළිය නැවත ටර්මිනලය මත දිස් වනු ඇත.
Shell පාරිසරිකයේ දී මේ සම්මත ආදානය මගින් දත්ත ග්රහණය කර ගැනීමටත්, සම්මත ප්රතිදානය වෙත තොරතුරු යැවීමටත් භාවිත වන විධාන දෙකක් වෙයි. ඒවා පිළිවෙලින් read හා echo වෙයි. read විධානය සම්මත ආදානය කියැවීමටත්, echo විධානය සම්මත ප්රතිදානය වෙත ලිවීමටත් යොදා ගත හැකි ය. මේ පිළිබඳ උදාහරණ සහිතව වැඩි දුර තොරතුරු ඉදිරි ලිපියකින් බලාපොරොත්තු වන්න.



Post new comment