ඇයි
මේ Command
Line arguments අවශ්ය
වෙන්නෙ.
ප්රධාන
කාරණා දෙකක් තියෙනව.
කමාන්ඩ්
එකට අවශ්ය option
එකක්
ලබා දීමට.
echo
-e “mad”
මේකෙ
මේ -e කියල
තියෙන්නෙ පළමු argument
එක ඒක
echo කියන
command එකේ
option එක.
කමාන්ඩ්
එකට මොන 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
එක ඇතුලෙ
ආයෙ භාවිතා කරන්න බැරි බව.
24
.Redirection (ප්රතිදිශාව).
මේ
කතන්දරෙන් කියන එකත් ඒ තරම්
අමාරු දෙයක් නෙවෙයි අපි බලමු
දැන් ඒ ගැන.
අපි
සාමාන්යයෙන් මොකක් හරි
කමාන්ඩ් එකක් රන් කරපුවහම
ඒකෙ ප්රතිඑලය ටර්මිනල් එකේ
ප්රින්ට් වෙන එකනෙ වෙන්නෙ.
හොඳම
උදාහරණෙ තමයි ls
කමාන්ඩ්
එක එක ටයිප් කරහම ඔයලට ටර්මිනල්
එකේම අදාල out
put එක
පෙන්නන එක.
අපට
පුලුවන් ඔන්න ඔය දෙන out
put එක
අපි හදාගනිපු file
එකකට
අරගන්න,
එහෙමත
නැත්තම් file
එකක්
read කරල
එකෙ තියන ඒව අරගෙන ටර්මිනල්
එකට ලබා ගන්න.
ඔන්න
ඔය කතාවට තමයි redirection
කියල
කියන්නෙ.
ඔන්න
බලන්න එක කරන හැටි.මුලින්ම
ඔය දැන් ඉන්න directory
එකේ
man.txt කියල
text file එකක්
හදාගන්න.
ඊළඟට
ටර්මිනල් එකේ මෙහෙම ටයිප්
කරල එන්ටර් ඔබන්න .
(ටර්මිනල්
එකෙනුත් ඒ directory
එක ඇතුලෙ
ඉන්න ඔන. )
ls >
man.txt
දැන්
ඔයාල man.txt
කියන
file එක
ඔප්න් කරල බැලුවෙත් ඔයාලට
පෙනෙයි ls
මගින්
ටර්මිනල් එකේ ටයිප් වෙන්න ඕන
ටික man.txt කියන
file එකේ
save වෙලා
තියෙන බව.
ලේසි
ක්රමේ : -
කලින්
කරා වගේ මුලින් man.txt
කියන
file එක
හදල ඉන්න ඔන නෑ.
ඔය ls
> man.txt කියන
කමාන්ඩ් එක නිකම්ම ටර්මිනල්
එකේ ටයිප් කරහම man.txt
එක ඔටෝ
හැදිල ඒකෙ ls
මගින්
අවශ්ය දේවල් ටික ලියවෙනව.
ප්රධාන
Redirection සලකුණු
(symbols) තුනක්
තියෙනව.ඒව
තමයි
>
>>
<
අපි
දැන් බලමු ඒවයි තියෙන වැඩ
කිඩ ටික.
>
- මේක
ඔයාල කරල බැලුවනෙ.
මේ
ලකුණ යොදා ගත්තම හැම තිස්සෙම
write කරන්න
ඔන file එක
අලුතෙන්ම හැදෙනව.
කලින්
එහෙම file
එකක්
තියෙනම් කිසිම කතාවක් නැතුව
ඒක overwrite
වෙනව.කරලම
බලන්නකො.
>>
- මෙන්න
මේවිදියට තමයි මේක භාවිතා
කරන්නෙ.
ls
>> fileName
මේකෙ
තියන විශේෂත්වෙ තමයි කලින්
එකේ වගේ overwrite
වෙන්නෙ
නැතුව එකම file
එක
write වෙන
එක. ඒ
කිව්වෙ මෙහෙමයි අපි හිතමු
අපි write
කරන්න
ඉන්න file
එක
ඇතුලෙ කලින් save
කරපු
තව මොනව හරි දේවල් තියෙනව
කියල ඒව වෙනස් නොවී ඒවට යටින්
අලුත් දේවල් ටික save
වෙන
එක.ඉතින්
මේකෙන් පුලුවන් කලින් දේවලුත්
එක්ක අලුත් දේවලුත් තියා
ගන්න.
<
- මේකෙන්
තමයි file
එකක
තියෙනෙ ඒව read
කරන
වැඩේ කරන්නෙ.
එක
කරන්න පුලුවන් මෙහෙම.
මුලින්ම
හදන්න මොනව හරි ටයිප් කරපු
දේවල් තියෙන ටෙක්ස්ට් file
එකක්
ඒකෙ නම දෙන්න my.txt
කියල
දැන් ටර්මිනල් එකෙන් එක
තියන directory
එකට
ගිහින් මෙන්න මෙහෙම ටයිප්
කරල රන් කරන්න.
cat
< my.txt
cat
කියන
කමාන්ඩ් එකෙන් file
දෙකක්
මූට්ටු කරන්නයි එව ඇතුලෙ තියන
ඒව
ප්රින්ට කරන්නයි පුලුවන්.
මෙව්ව
ගැන වැඩි විස්තර පස්සෙ පස්සෙ
දැන ගන්න පුලුවන්.
දැන්
මේවයින් පොඩි උදාහරණයක් බලමු.
ටර්මිනල්
එක ඔපන් කරල මෙන්න මේ කමාන්ඩ්
එක රන් කරන්න.
cat
> myfile.txt
එතකොට
කර්සර් එක බිලින්ක් වෙවී
තියෙනව එතකොට ඔයාල ඔය පහල
තියෙන පින්තුරෙ වගේ ඔය නගර
වල නම් ටික එන්ටර් කරල ඉවරවෙලා
CTRL + D ඔබල
save කරන්න.
දැන්
ඔය ඉන්න directory
එකේ
ඒ නගර ටික save
උන
myfile.txt කියල
file එකක්
හැදිල ඇති.
අපට
ඔන ඒ file එකේ
තියන නගර වල නම් alphabet
එකේ
පිලිවෙළට හදන්න.
ඒකට
කරන්නෙ මෙන්න මේ වැඩේ.මෙන්න
මේ කමාන්ඩ් එක රන් කරන්න.
sort < myfile.txt > sorted
ඊළඟට
මේක රන් කරන්න
cat
sorted
එතකොට
sort උන
පිලිවෙලට ප්රතිඑලය දැකගන්න
පුලුවන්.
තවත්
එකක් තමයි sorted
කියල
file එකකුත්
හැදිල තියෙන බව දකින්න පුලුවන්
අදාල directory
එකේ
.ඒකෙ
තමයි sort උන
ලිස්ට් එක සේව් වෙලා තියෙන්නෙ.
තියෙන
කමාන්ඩ් එක රන් කරහම වෙන්නෙ
myfile.txt
එකේ
තියෙන ඒව read
කරල
sort
කරල
sorted
කියන
නමින් file
එකක්
හදල ඒකට සේව් කරන එක.
sort
-කියන
කමාන්ඩ් එක නිතරම අනුපිලිවෙලට
සකසන දේවල් වලට භාවිතා කරන්න
පුලුවන්.