
by Sameera Shaakunthala
ලිනක්ස් පාරිසරිකය තුළ දී shell script භාවිත කරන ආකාරය පිළිබඳ මෙම ලිපි පෙළින් ඉදිරිපත් කෙරේ. පසු ගිය කලාපයේ සාකච්ඡා කරන ලද්දේ සම්මත ආදාන හා ප්රතිදාන වල ප්රායෝගික භාවිතාව වන echo හා read විධාන පිළිබඳවයි. මෙවර ලිපියෙන් අප සාකච්ඡා කිරීමට බලාපොරොත්තු වන්නේ ආදාන හා ප්රතිදාන හැරවීම (I/O redirection) සම්බන්ධවයි. මේවායේ වඩාත් ප්රායෝගික භාවිතාව ඉදිරි ලිපි වලදී සාකච්ඡා කරන්නට අදහස් කරනෙමු.
ආදාන හා ප්රතිදාන හැරවීමේ දී < හා > සලකුණු භාවිත වේ. < / > සලකුණෙන් යොමු වන දිශාවට අදානය/ ප්රතිදානය හැරවීම මෙයින් අදහස් වේ.
ප්රතිදානය හැරවීම
මෙහිදී සිදු කරනුයේ සම්මත ප්රතිදානය හෝ සම්මත දෝෂය, වෙනත් ප්රතිදාන මඟක් හෝ ගොනුවක් වෙත හැරවීමයි. මේ සඳහා පහත දැක්වෙන උදාහරණ බලන්න.
ls / -R > tree.txt
ls විධානයේ ප්රතිදානය, tree.txt ගොනුව වෙත හරවා යවයි. මෙහිදී, tree.txt ගොනුව නොපවතී (not exist) නම් එනමින් ගොනුවක් නිර්මාණය කරයි. නැතහොත්, දැනට එනමින් තිබෙන ගොනුව ප්රතිස්ථාපනය (replace) කරයි. නමුත් දෝෂ ප්රතිදානය (error messages) ටර්මිනලය මත දිස් වේ.
ls / -R >> tree.txt
ls විධානයේ ප්රතිදානය, tree.txt ගොනුව වෙත හරවා යවයි. මෙහිදී, tree.txt ගොනුව නොපවතී (not exist) නම් එනමින් ගොනුවක් නිර්මාණය කරයි. නැතහොත්, දැනට එනමින් තිබෙන ගොනුවෙහි අගට, එම ප්රතිදානය එක් කරයි (append). නමුත් දෝෂ ප්රතිදානය (error messages) ටර්මිනලය මත දිස් වේ.
ඉහත උදාහරණ වල, හැරවීමේ සලකුණු (> හා >>) පහත ආකාරයටද යොදා ගත හැකිය. විවිධ අවශ්යතා අනුව මේවා script වල විවිධ ආකාරයට යෙදේ. අප විසින් පසුව සාකච්ඡා කරනු ලබන ආදර්ශ script වලදී මේවායේ ක්රියාකාරීත්වය ගැන වඩාත් පැහැදිලි අදහසක් ලබා ගත හැකි වනු ඇත.
1> සම්මත ප්රතිදානය (ඉහත ආකාරයටම)
2> සම්මත දෝෂය
&> සම්මත ප්රතිදානය සහ සම්මත දෝෂය (සියළුම ප්රතිදානය)
1>&2 සම්මත ප්රතිදානය, සම්මත දෝෂය වෙත හරවා යැවේ
2>&1 සම්මත දෝෂය, සම්මත ප්රතිදානය වෙත හරවා යැවේ
ls / -R 2> tree.txt
ඇති වන දෝෂ පණිවුඩ පමණක් tree.txt ගොනුව වෙත හරවා යැවේ.
ආදානය හැරවීම
මෙහිදී සිදු කරනුයේ යම් විධානයක් සඳහා අවශ්ය ආදානය යතුරු පුවරුවෙන් ලබා නොගෙන, ගොනුවක් හෝ වෙනත් උපක්රමයක් මගින් ලබා ගැනීමයි. ප්රතිදානය හැරවීමට සාපේක්ෂව, ආදානය හැරවීම විරල යෙදීමකි. මේ සඳහා < සලකුණ යොදා ගනී.
උදා:
grep alias < .bashrc
alias යන පාඨ කොටස සමඟ ගැළැපෙන පාඨ පේළි දර්ශනය කරවයි. නමුත් ආදානය ලබා ගනුයේ යතුරු පුවරුවෙන් නොව .bashrc ගොනුවෙනි.
Pipeline (නළමඟ)
සරලව කිවහොත් pipeline එකක් යනු සැබෑ ජල නළ මාර්ගයක ක්රියාකාරීත්වයේ මෘදුකාංගමය ආදර්ශනයකි. Pipeline එකක කාර්යභාරය වනුයේ විධාන එකකට වැඩි ගණනක් අතථ්ය නළමඟ වලින් සම්බන්ධ කොට, තනි විධානයක් නිර්මාණය කිරීමයි. මෙහිදී සිදු කෙරෙනුයේ එක් විධානයක ප්රතිදානය මීළඟ විධානයේ ප්රදානය හා සම්බන්ධ කිරීමයි. මේ සඳහා භාවිත වන සංකේතය වනුයේ සිරස් ඉරි ( | ) සංකේතයයි.
උදා:
ls / -R
(ඔබේ පරිගණකයේ ඇති ගොනු සියල්ල ලැයිස්තුගත කර ප්රතිදානය ලෙස නිකුත් කරයි. එම ලැයිස්තුව සම්මත ප්රතිදානය, එනම් ටර්මිනලය මත දර්ශනය කරවයි)
ls / -R | grep audio
ls හා grep යනු විධාන දෙකකි. නමුත් මෙහිදී එම විධාන දෙක pipeline එක මගින් සංයුක්තව තනි විධානයක් ලෙස ක්රියාත්මකව, සම්ප්රයුක්ත ප්රතිදානයක් ලබා දෙයි.
මෙහිදී සිදු වන්නේ ls විධානයේ ප්රතිදානය සම්මත ප්රතිදානය වෙත නිකුත් නොවී grep විධානය වෙත යැවීමයි. සම්මත ප්රතිදානය වෙත ලැබෙනුයේ අවසාන ප්රතිදානයයි. මෙය පහත දැක්වෙන රූපසටහනින් වඩාත් හොඳින් තේරුම් ගත හැකි වේ.
මෙම ලිපි පෙළෙහි පළමු අදියර මින් නිමා වන අතර, ක්රමලේඛය තුළදී තීරණ ගැනීමේ ක්රමවේද (decision making) සහ loops යන සංකල්පද ඇතුළත්ව මෙහි මීළඟ අදියර diGIT ලබන කලාපයේ සිට බලාපොරොත්තු වන්න.
Previous Article
Post new comment