28 – Command line හි ප්‍රසාරණය (expansion) (2 කොටස)

Command line හි ප්‍රසාරණය යටතේ අවසාන වශයෙන් විචල්‍යය/පරාමිතික ප්‍රසාරණය (variable/parameter expansion) සහ අවශ්‍ය පරිදි ප්‍රසාරණ ක්‍රියාවලිය පාලනය සිදු කරන ආකාරය අද ලිපියෙන් සොයා බලමු.

විචල්‍යය/පරාමිතික ප්‍රසාරණය (variable/parameter expansion)

Linux command line පාඩම් යටතේ අප හඳුනාගත් shell පරිසරයේදී වැදගත් වන විවිධ තොරතුරු අඩංගු විචල්‍යයන් (environmental variables) ද command line මගින් ප්‍රසාරණය කිරීම සිදු කරනු ලබයි. මෙම variables කුඩා ක්‍රියාත්මක ගොණු (scripts files) වලදී බහුල ව භාවිතා වන අතර එහිදී commands ක්‍රියාත්මක කිරීමට අවශ්‍ය අමතර තොරතුරු මෙමගින් ලබාදෙන නිසා පරාමිතීන් (parameters) ලෙස ද හඳුන්වනු ලැබේ.

විචල්‍යයන් සෑම විටම $ සංකේතයෙන් ආරම්භ වන අතර $ සමග මුල් අකුරු කිහිපය type කිරීමෙන් පසු Tab key එබීමෙන් පූරණය වීම සිදුවේ. (වැඩි විස්තර සඳහා Command line භාවිතය පහසු කර ගැනීමේ උපක්‍රම ලිපිය බලන්න). මෙහිදී නිවැරදිව පරාමිතියේ නාමය (parameter name) ලබාදීමට වගබලා යුතුය. නැතහොතේ ප්‍රසාරණයේ අවසාන ප්‍රථිපලය ලෙස කිසිවක් දැකගත නොහැකිය. Shell තුළ environmental variables විශාල ප්‍රමාණයක් ගබඩා කර ඇති අතර එම ලැයිස්තුව සහ ඒවායේ අන්තර්ගතය බලා ගැනීමට env හෝ printenv යන commands දෙකෙන් ඕනෑම එකක් යොදාගත හැකිය. Environmental variables පිලිබඳ ගැඹුරින් හැදෑරීමක් ඉදිරි ලිපියකදී සිදු කෙරේ.

parameter-expand
parameter expansion

Commands ආදේශනය (substitution)

කිසියම් command එකක ප්‍රථිපලය (result) හෝ ප්‍රතිදානය (output) ප්‍රසාරණය කර දැක්වීමට command ආදේශනය උපයෝගී වේ. මෙහිදී $ ට පසුව වරහන් – () තුළ සම්පුර්ණ command එක ලබාදිය යුතුය. විකල්ප වශයෙන් $() වෙනුවට ` ` (back-tick/back-quotes) තුළ command එක අඩංගු කිරීමට පිළිවන. (` බොහෝවිට පිහිටා ඇත්තේ keyboard එකේ characters keys කොටසෙහි ඇති number keys වලින් 1 ඉලක්කමට වම්පසිනි). Command substitution පිලිබඳ උදාහරණ කිහිපයක් පහත දැක්වේ.

command-substitution
command substitution

Command line ප්‍රසාරණය පාලනය

Command line හි ප්‍රසාරණ ක්‍රියාවලිය බොහෝ අවස්ථා වලදී ඉතා ප්‍රයෝජනවත් වුවද ඇතැම් විට එමගින් අප බලාපොරොත්තු වන ප්‍රථිපලය නොලැබී යා හැකිය. උදාහරණ ලෙස පහත අවස්ථා දෙකේදී ලැබෙන ප්‍රථිපල අපේක්ෂිත දෙයට වඩා හාත්පසින්ම වෙනස් ය.

expansion-error
incorrect expansion

ඉහත පළමු වැන්නේදී වචන අතර අමතර හිස්තැන් ඉවත් කෙරී ඇති අතර දෙවැනි උදාහරණයෙහි $100 යන්න $1 (variable) සහ 00 ලෙස අර්ථ දැක්වී ඇත. මෙවැනි අනවශ්‍ය ප්‍රසාරණ කාර්යයන් වලින් මිදී අභිමත පරිදි එය පාලනය කිරීමට ද command line මගින් ඉඩ ලබාදී ඇත. මේ සඳහා යොදාගනු ලබන ක්‍රම පිලිබඳ මීළඟට සොයා බලමු.

උද්ධෘත (quotes) භාවිතය

මෙය තනි උද්ධෘත ‘ ‘ (single quotes) සහ ද්විත්ව උද්ධෘත ” “ (double quotes) ලෙස ප්‍රධාන ක්‍රම දෙකකට භාවිතා කල හැකිය.

” ” (ද්විත්ව උද්ධෘත – double quotes) භාවිතය

මෙහිදී $ (dollar symbol), \ (back slash) සහ ` (back-tick) හැරුණු විට අනෙක් සියලුම සංකේත සාමාන්‍ය අක්‍ෂර ලෙස සලකා ප්‍රසාරණ ක්‍රියාවලියෙන් බැහැර කරනු ලැබේ. එනම් වචන බෙදීයාම (word splitting), පෙත ප්‍රසාරණය (path expansion), ~ (නිවස්න ගොණු) ප්‍රසාරණය සහ සඟල වරහන් – {} ප්‍රසාරණය මෙමගින් වැලකී යයි. නමුත් පරාමිතික (parameter) ප්‍රසාරණය, අංක ගණිතමය (Arithmetic) ප්‍රසාරණය සහ command ආදේශනය එලෙස ම ක්‍රියාත්මක වේ. ” “ යොදාගැනීමේ විශේෂ ප්‍රයෝජනයක් මෙහිදී සඳහන් කල යුතුය. සාමාන්‍යයෙන් Linux ගොණු පද්ධතිය (file system) තුළ ගොණු සහ නාමාවලි නාමයන් (file & directory names) සඳහා හිස්තැන් (spaces) යොදා ගැනීම අනුමත නොකෙරේ. කෙසේ නමුත් Windows මෙහෙයුම් පද්ධතියට හුරු වී ඇති බොහෝ දෙනෙකු නිරායාසයෙන් ම file & directory names සඳහා spaces යොදාගනු දැකිය හැකිය. Command line හි සමහර commands මෙසේ spaces සහිත files & directories සමග ක්‍රියාත්මක වීමේදී ගැටළු පැන නගී. එවැනි අවස්ථාවලදී ” “ තුළ අදාළ file/directory name යෙදීමෙන් එම ගැටළුකාරී තත්ත්වය මග හරවාගත හැකිය. ” “ වල ක්‍රියාකාරිත්වය උදාහරණ කිහිපයක් මගින් පහතින් දක්වා ඇත.

double-quotes
double quotes in action

සටහන: පරිගණකයේදී වචන/පේළි අතර සිමාවන් (delimiters) දැක්වීමට spaces, tabs (\t) සහ newline (\n) යොදාගන්නා අතර ඒ සඳහා පිළිවෙලින් Spacebar, Tab key සහ Enter key යොදාගනු ලැබේ. මේවා පොදුවේ whitespaces (හිස් ඉඩක්) ලෙස සලකනු ලැබේ. ඉහත ” “ මගින් දක්වා නොමැති අවස්ථා වලදී command ආදේශනය මගින් ලැබෙන ප්‍රථිපලයෙහි අමතර whitespaces ඉවත්වීම යාම නිසා ප්‍රතිදානය තරමක් අපැහැදිලි ලෙස දිස්වනු ඇත.

whitespaces
whitespaces in double quotes

‘ ‘ (තනි උද්ධෘත – single quotes) භාවිතය

සියලු ආකාරයේ ප්‍රසාරණ ක්‍රියාවලීන්ගෙන් මිදී අප විසින් type කරන දෑ එලෙසම නැවත දර්ශනය කර ගැනීමට single quotes යොදාගනී.

single-quotes
single quotes

\ (back slash) භාවිතය

සමහර අවස්ථා වලදී අපට සියලු ම ප්‍රසාරණ ක්‍රියාවලීන් නැවැත්වීම වෙනුවට තනි අක්‍ෂරයක් පමණක් ප්‍රසාරණය වීම වැලක්වීමට වුවමනා විය හැකිය. උදාහරණයක් ලෙස $ යන්න මුල්‍යමය අගයක් දැක්වීමට යොදාගන්නා විට එය පමණක් ප්‍රසාරණයෙන් බැහැර කරවීමට (escape) සිදුවේ. මෙවැනි සුවිශේෂ අවස්ථාවන් වලදී \ යොදාගෙන අප‍ගේ කාර්යය ඉටු කරගැනීමට පිළිවන. තවද ඉහත දැක්වූ files & directory names වල ඇති whitespaces සහ විශේෂිත අක්‍ෂර/සංකේත (special characters/symbols) ” “ (double quotes) යොදා ගැනීමකින් තොරව මෙමගින් භාවිතා කිරීමේ පහසුව ලබාදේ. \ යොදා ගත්විට ඊට පසුව යෙදෙන අක්‍ෂරය/සංකේතය (character/symbol) ප්‍රසාරණ ක්‍රියාවලියෙන් මිදේ (escaping). මේ නිසා දැනටමත් ” “ තුළ ඇති පාඨයක (text) යෙදීමට මෙම ක්‍රමය උපකාරී කරගත හැකිය.

escaping
character escaping

සටහන: ඉහත දැක්වූ පරිදි \ භාවිතයේදී සංකේතයක් ලෙස ම \ යොදා ගැනීමට අවශ්‍ය නම් \\ ලෙස type කල යුතුය.

ප්‍රතිචාරයක් ලබාදෙන්න

Fill in your details below or click an icon to log in:

WordPress.com Logo

ඔබ අදහස් දක්වන්නේ ඔබේ WordPress.com ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Google photo

ඔබ අදහස් දක්වන්නේ ඔබේ Google ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Twitter picture

ඔබ අදහස් දක්වන්නේ ඔබේ Twitter ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Facebook photo

ඔබ අදහස් දක්වන්නේ ඔබේ Facebook ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )