Professional Documents
Culture Documents
SST A4 PDF
SST A4 PDF
,
சசெம்சமமொழியில் கற்பபமொம்
சஷெல் ஸ்கிரிப்ட
பணியமொ. பிரசென்னமொ
askprasanna@gmail
மின்னூல சவெளியீடு :
FreeTamilEbooks.com
அட்டடைப்படைம், மின்னூலமொக்கம் :
ம.பவெல. பிரசென்னமொ
udpmprasanna@gmail.com
உரிடம :
முன்னுடர:
இயங்குதளம் என்பத பயனரக்கும், கணினிக்குமிடடைபய இரக்கும் ஒர இடடைமுகப்பமொகும்.
சபமொதவெமொக ஒர இயங்குதளத்திடன நிறவெல சசெய்வெத மட்டுபம பயனரின் அடனத்தத்
பதடவெகடளயும் பூர்த்தி சசெய்த விடைமொத. பயனரின் அன்றமொடைத் பதடவெகள தமொனியங்கு மயமமொக்கப்படைல
பவெண்டும். அப்சபமொழதமொன் சபமொறிநிடறஞரின் பவெடல எளிதமொகும். பயனரின் பதடவெகள விடரவெமொக
முடியும். அவ்வெமொற தமொனியங்கு மயமமொக்கலுக்கு, இயங்குதளத்தில உளள கட்டைடளகடள சதமொடைர்பு
படுத்தி நிரலகள, குறநிரலகள எழதப்படைல பவெண்டும். அடவெயும் சபமொதமயமமொக்கலுக்கு ஏற்ற
வெண்ணம் எழதப்படைல பவெண்டும். அதற்கமொக நெமொம் சஷெல ஸ்கிரிப்ட் கற்க பவெண்டும்.
யமொசரலலமொம் படிக்கலமொம்:
சபமொறி நிடறஞர்கள (System Administrators), சமன்சபமொறிஞர்கள (software engineers), நிரலர்கள
(programmers), யுனிக்ஸ், லினக்ஸ் ஆர்வெலர்கள (Unix & Linux enthusiasts) ஆகிபயமொரக்குப் படித்த எளிதில
புரிந்த சகமொளளும் வெண்ணம் இத்சதமொடைர் அடமக்கப் சபற்றிரக்கிறத. சதமொடைடரப் படித்தப் புரிந்த
சகமொளள இயங்குதள அடமப்பு (OS architecture), குடறந்தபட்செம் சதமொடைக்க நிடல நிரசலழதம் திறடம
(at least beginner level programming skills) ஆகியடவெ இரக்க பவெண்டும்.
சஷெலலின் வெடககள:
இலிசனக்டஸப் சபமொறத்தவெடரயில பலவெடகயமொன சஷெலகள கமொணப்படுகின்றன. ஆனமொல நெமத
குறநிரலகள குறிப்பிட்டை சஷெலலில மட்டுபம நெடடைசபறபவெண்டுசமன்பதற்கமொகபவெ நெமொம் ஷிபபங்
என்ற நிரலின் சதமொடைக்கத்திபலபய குறிப்பிடை பவெண்டும். உளளிரப்பமொக சஷெல ஸ்கிரிப்ட்டுகள பபஷ
சஷெல எனப்படும் சஷெலலிபலபய இயக்கப்படும். ஆனமொல இத ஒவ்சவெமொர சபமொறி சபமொறத்தம்
மமொறபடும். எனபவெதமொன் நெமொம் இதடன ஒவ்சவெமொர நிரலின் சதமொடைக்கத்திலும் சசெய்ய பவெண்டும்.
இலடலபயல ஒர சபமொறியில சறப்பமொக இயங்கும் குறநிரல பவெற சபமொறியில (உளளிரப்பமொக
இரக்கும் சஷெல மமொற்றப்பட்டிரந்தமொல) செரிவெர இயங்கமொத.
1. பமொர்ன் சஷெல (Bourne shell (sh))
முன்னறிவுத் பதடவெகள:
சஷெல ஸ்கிரிப்ட் சமமொழி பயிலவெதற்கு ச சமமொழி சதரிந்திரக்க பவெண்டும் என்ற சலர் சசெமொலவெதண்டு.
கண்டிப்பமொக சதரிந்திரக்க பவெண்டும் என்பதலல. சதரிந்திரந்தமொல சஷெல ஸ்கிரிப்ட் பயிலவெதற்கு
எளிதமொக இரக்கும். லினக்சு இயங்குதளத்தின் கட்டைடளகள நென்கு சதரிந்திரக்க பவெண்டும்.
அப்சபமொழத எலலமொ வெடகயமொன சசெயலகடளயும் நெமொம் நென்கு கட்டுப்படுத்தி, தமொனியங்கு நிரலகடள
எழத முடியும். எனபவெ சஷெல ஸ்கிரிப்ட் என்பத சபமொதவெமொக சல லினக்சு கட்டைடள வெரிகளின்
சதமொடைர்ச்சயமொகும். புதிதமொக சஷெல ஸ்கிரிப்ட் கற்றக் சகமொளவெதற்கும், ஏற்கனபவெ கற்றவெர்கள அடத
பமம்படுத்திக் சகமொளவெதற்கும் இத்சதமொடைர் தடணபுரியும்.
நிரல 1:
#!/bin/bash
echo “Welcome to Linux Shell script world”
v) வெடலயக பமலமொண்டம
இத இரண்டு வெடகப்படும்.
1. கம்பியுளள வெடலயம்
2. கம்பியிலலமொ வெடலயம்
இந்த இரண்டுபம வெடரயறக்கப்பட்டை வெடலய அடுக்குகள மற்றம் வெடலயக்கரவி
இயக்கிகள சகமொண்டு சசெயலபடுகின்றன.
இந்த ஐந்த வெடகயமொன பமலமொண்டமகளும் ஒன்றக்சகமொன்ற சநெரங்கிய சதமொடைர்புடடையடவெ. இடவெ
அடனத்டதயும் செரிவெர சசெயலபடுத்தவெபத ஒர திறனுளள இயங்குதள த்தின் பவெடலயமொகும்.
ஒவ்சவெமொர சமமொழி சபமொறத்தம் தரவு அடமவுகள பவெறபடும். இங்கு சஷெல நிரலகடளப் சபமொறத்த
அளவில எண்கள மற்றம் உடரகள என இர வெடக தரவுகபள உளளன. உயர் நிடல சமமொழிகளமொன ச, ச+
+, ஜேமொவெமொ சமமொழிகளில நெமொம் ஒர மமொறிடயப் பயன்படுத்த பவெண்டுசமனில அதடன நெமொம் சவெளியிடை
சவெண்டும். ஆனமொல சஷெல நிரலமொனத உயர் சமமொழி இலலமொததமொல நெமொம் அவ்வெமொற சவெளியிடைத்
பதடவெயிலடல.
உடரகள
எந்த வெடகயமொன உடரயமொக இரப்பினும் அடவெ இரட்டடை பமற்பகமொளகுறிக்குள எழதப்படைல,
அணுகப்படைல பவெண்டும். உடரகளுக்குளபள ஒப்பிடும் சபமொழத அபத பபமொன்ற சசெயதல பவெண்டும்.
எண்கள, உடரகள ஆகியவெற்டறப் பற்றி விரிவெமொக பிறகு வெரம் நிரலகளின் விளக்கத்தின் சபமொழத
கமொணலமொம்.
ஐயம்: சஷெல ஸ்கிரிப்ட்டுகள அர்பர (Array) எனப்படும அடுக்குமமொறிகடள ஆதரிக்குமமொ?
தீர்வு: சஷெலஸ்கிரிப்ட் அர்பர எனப்படும் அடுக்குமமொறிகடள பநெரடியமொக ஆதரிக்கமொத. இரப்பினும் ஒர
பரிமமொண அடுக்குமமொறிகடள (one dimensional array) நெமொம் பநெரடியமொக நிகர்படுத்தி (assign)
பயன்படுத்தலமொம். அடவெ குறித்த நிரலகடள பின்னமொல பமொர்க்கலமொம். அடுக்குமமொறிகள அடனத்தம் சுழி
அடிப்படடை சதமொடைக்கத்டதக் (zero-based index) சகமொண்டைடவெயமொகும். அடுக்குமமொறிகளுக்கு வெரம்சபலடல
எதவும் கிடடையமொத. ஆனமொல உயர்நிடல சமமொழிகளமொன ச,ச++,ஜேமொவெமொ பபமொன்ற இர பரிமமொண (two
dimensional), முப்பரிமமொண (three dimensional), பலபரிமமொண(multi-dimensional) அடுக்குமமொறிகடள சஷெல
ஸ்கிரிப்ட் ஆதரிக்கமொத.
ls கட்டைடளயின் சபமொழத பின்வெரம் படைத்தில உளளத பபமொல இயங்குதளத்தில சசெயற்பமொடுகள
நிகழம்.
இங்கு VFS என்பத Virtual File System என்படதக் குறிக்கும். இனி எண்கள உடரகள ஆகியவெற்டற
எவ்வெமொற நிரலில பயன்படுத்தலமொம் என்படதக் கமொணலமொம்.
எண்கடள நிரலில அறிக்கும் முடற:
i=5
j=6
உடரகடள நிரலில அறிவிக்கும் முடற:
one=”This is one”
two=”This is two”
நிரல 3:
தற்சபமொழத சபமொறியில உளநுடழந்திரக்கும் (system login users) பயனர்களின் சபயர்கடள மட்டும்
வெரிடசெப்படுத்தம் குறநிரடல கீழ்க்கண்டைவெமொற எழதலமொம்.
சபமொதவெமொக w அலலத who ஆகிய இரண்டு கட்டைடளகள மூலம் ஒர சபமொறியினுள உளநுடழந்திரக்கும்
பயனர்களின் அடனத்த விபரங்கடள அறிய முடியும். கீழ்க்கமொணும் கட்டைடள அதற்கு உதவுகிறத.
#who | sort | cut -d‘ ’ -f1
இங்கு who என்பத முதன்டமக் கட்டைடள ஆகும். sort என்பத சவெளியீட்டிடன அகரவெரிடசெயில
அடமக்க உதவும் கட்டைடளயமொகும். cut என்பத ஒர குறிப்பிட்டை field எனப்படும் நிடரயிடன (column)
மட்டும் பிரிக்க உதவும் கட்டைடளயமொகும். d என்பத delimiter or separator என்றடழக்கப்படும் பிரிப்பமொன்
ஆகும். f1 எனத முதல நிடரயிடனக் (column) குறிக்கிறத. இதற்கமொன முழநிரடலக் கீழ்க்கமொணுமமொற
எழதலமொம்.
#!/bin/bash
# whos – a program which displays the login usernames of a particular system.
who | sort | cut -d‘ ’ -f1
பின்வெரம் படைங்கள எவ்வெமொற குறிப்பிட்டை நிரடல எழதி இயக்க பவெண்டும் என்ற விளக்குகின்றன. (vim
whos.sh; chmod +x whos.sh; ./whos.sh)
(கற்பபமொம்…)
நிரற்பமொ விளக்கம்:
நிரற்பமொவிடன மனப்பமொடைம் சசெய்த டவெத்தக் சகமொண்டைமொல இலினக்சு இயங்குதளத்தின்
சசெயலகடளயும், அவெற்றின் நிடலகடளயும் எளிதில நிடனவுக்கு சகமொண்டுவெர இயலும். இங்கு
சபற்பறமொர் என்பத parent process ஐயும், குழந்டத child process, இலலமொர் என்பத orphan process உதவியர்
என்பத daemon process ஆகியவெடறயும் குறிப்பிடுகிறத. எனபவெ நெமொன்கு முதன்டமயமொன சசெயலகள
உளளன. அவெற்றின் நிடலகளமொக ஓட்டைம் (running or active state), நிற்றல (stopping state), உளளுடற (dead or
zombie state), உறக்கம்(sleeping state) உறக்கத்தின் தடண நிடலகளமொக குறக்கிடு உறக்கம்(interruptable sleep
state), குறக்கிடைமொ உறக்கம்(uninterruptable sleeping state) ஆகியடவெ உளளன.
சபற்பறமொர் சசெயல (Parent Process) என்பத ஒன்ற அலலத அதற்கு பமற்பட்டை சசெயலகடளத் தன் சசெயல
நிடறபவெறவெதற்கமொகத் தன்னகத்பத சகமொண்டைதமொகும்.
குழந்டத சசெயல (Child Process) என்பத பவெசறமொர சசெயலமொனத உரவெமொக்கிய சசெயலமொகும்.
சபற்பறமொர் சசெயலமொனத முடிந்த பிறகும், குறிப்பிட்டை குழந்டத சசெயல தன்னமொலமொகச் சசெயலபட்டுக்
சகமொண்டிரத்தல இலலமொர் சசெயல (Orphan Process) அலலத சபற்பறமொர் இலலமொச் சசெயல எனப்படும்.
ஏபதனும் ஒர சசெயலின் உதவிக்கமொக பின்புலத்தில சசெயலபடுவெத உதவியர் (Daemon Process) சசெயல
எனப்படும்.
உளளுடற நிடல (Zombie state) என்பத, ஒர குறிப்பிட்டை சபற்பறமொர் சசெயலமொனத முடிந்த பிறகும்,
அதனுடடைய அட்டைவெடணயில இரக்கும் ஒர சசெயல. இத சசெயலின் ஒர சசெத்த நிடல.
ஓட்டைம் என்பத தற்பபமொத சசெயலிலும், உறக்கம் என்பத முன்னர் சசெயலிலும் இரந்த நிடலகளமொகும்.
நிற்றல என்பத முடிந்த (Stop state) நிடலயமொகும்.
விளக்கப்படைம்:
பின்வெரம் விளக்கப்படைங்கள இந்த சசெயலகடளயும், அவெற்றின் நிடல மற்றம் தடண நிடலகடள
விளக்கும் வெண்ணம் அடமந்தளளன.
<BODY>
Your page content goes here.
</BODY>
</HTML>
குறநிரல 4 - பதிப்பு 1: (Terminal Emulator மூலம் இயக்கலமொம்)
#!/bin/bash
# make_page - A script to produce an HTML file
echo "<HTML>"
echo "<HEAD>"
echo " <TITLE>"
echo " The title of your page"
<BODY>
Your page content goes here.
</BODY>
</HTML>
_EOF_
நிரடல இயக்கும் பநெரம், main_page.sh > filename.html என்ற சகமொடுத்தமொல ஒர HTML பகமொப்பு உரவெமொகும்.
(கற்பபமொம்...)
நிரற்பமொ விளக்கம்:
லினக்சு இயங்குதளத்தின் ஏற்ற நிடலயில அதமொவெத boot ஆகும் சபமொழத முதலிபல டமயக்பகமொப்பமொன
kernel பகமொப்பு ஏற்றப்படுகிறத. பின்பு சதமொடைக்கம் எனப்படும் initrd.img பகமொப்பு ஏற்றப்படுகிறத. பின்பு
இயங்குதளத்தின் ஏழ நிடலகளில எந்த நிடலயமொனத அடமக்கப்படை பவெண்டும் என்ற /etc/inittab
பகமொப்பில கட்டைடள இரக்கிறபதமொ அந்த நிடலயில இயங்குதளம் சதமொடைங்கப் படுகிறத. வென்வெட்டு
அடமவுகடளக் சகமொண்டை /etc/fstab என்ற இடணப்புக் பகமொப்பில உளளவெமொற இயங்குதளம் தனத
பவெடலகடளச் சசெய்ய சதமொடைங்குகிறத.
ஐயம்:சஷெலஸ்கிரிப்ட்மூலம்தீங்குவிடளவிக்கும்நிரலகடளஎழதமுடியுமமொ?
நிரற்பமொ விளக்கம்:
இப்பமொவில இயங்குதளத்தில உளள ஏழ நிடலகள விளக்கப்பட்டுளளன.
நிறத்தம் என்பத init 0 என்ற நிடலடயக் குறிக்கிறத. இத shutdown சசெய்யப்பட்டை நிடலயமொகும்.
ஒற்டறப்பயனர் என்பத single user என்படதயும் வெடலயிலமொ பலபயனர் என்பத multiuser without network
என்படதயும், வெடலயுள பலபயனர் என்பத multiuser with network என்படதயும், பிற்கமொல உயர்வு future
enhancement or unused என்படதயும், பயனர் வெடரகடல என்பத GUI-Graphical User Interface என்படதயும்,
மறசதமொடைக்கம் என்பத restart என்படதயும் குறிக்கிறத.
init 0 – shutdown
init 1 – single user mode
init 2 – multi user mode without network
init 3 – multi user mode with network
init 4 – unused for future enhancement purpose
init 5 – XII or GUI mode
init 6 – reboot
#vim /etc/inittab என்ற பகமொப்பிடன திறந்த இதடன அறியலமொம். உளளிரப்பமொக Red Hat Enterprise Linux
இல ஓடு நிடல 3 அலலத 5 ஆனத இரக்கும். Ubunt இல ஓடுநிடல 3 ஆக இரக்கும்.
கரலச்சசெமொற்கள:
நிறத்தம் – init 0 (shutdown or halt)
ஒற்டறப் பயனர் – single user (run-level 1)
வெடலயிலமொ பலபயனர் – multiuser without network (run-level 2)
வெடலயுள பலபயனர் – multiuser with network (run-level 3)
பிற்கமொல உயர்வு – future enhancement (run-level 4)
பயனர் வெடரகடல – Graphical user interface (GUI run-level 5)
மறசதமொடைக்கம் – restart (run-level 6)
நிரல தண்டு - functions
(கற்பபமொம்)
நிரற்பமொ விளக்கம்:
சபரிய பவெடலடயச் சசெய்யக் கூடிய நிரலிடன சறிய தண்டுகளமொக்கி பதடவெயமொன சபமொழத அடழத்தப்
பயன்படுத்திக் சகமொளவெதமொல கட்டைடள வெரிகள குடறயும். விடரவெமொகச் சசெயலகள முடியும்.
நிரல 10:
#!/bin/sh
# A simple script with a function...
add_a_user()
{
USER=$1
PASSWORD=$2
shift; shift;
# Having shifted twice, the rest is now comments ...
COMMENTS=$@
echo "Adding user $USER ..."
echo useradd -c "$COMMENTS" $USER
echo passwd $USER $PASSWORD
echo "Added user $USER ($COMMENTS) with pass $PASSWORD"
}
###
# Main body of script starts here
###
echo "Start of script..."
add_a_user bob letmein Bob Holness the presenter
add_a_user fred badpassword Fred Durst the singer
add_a_user bilko worsepassword Sgt. Bilko the role model
echo "End of script..."
நிரல 11:
#!/bin/sh
myfunc()
{
echo "I was called as : $@"
x=2
}
### Main script starts here
echo "Script was called with $@"
x=1
echo "x is $x"
myfunc 1 2 3
echo "x is $x"
நிரல விளக்கம்:
இங்கு myfunc() என்பத நிரல தண்டைமொகும். அத முதன்டம நிரலில (main program) இரந்த
அடழக்கப்படுகிறத. இந்நிரல மூலம் நெமொம் எவ்வெமொற ஓபர மமொறியமொனத முதன்டம நிரலிலும், தண்டு
நிரலிலும் மமொறிமமொறி அடழக்கப்படுகின்றத என்படதக் கமொண்கிபறமொம்.
நிரல 12:
#!/bin/sh
myfunc()
{
echo "\$1 is $1"
echo "\$2 is $2"
# cannot change $1 - we'd have to say:
# 1="Goodbye Cruel"
# which is not a valid syntax. However, we can
கரலச்சசெமொற்கள:
சசெயற்பமொடு – functions
நிரலதண்டு – functions
சக்கலவெரிகள – complex instructions
சபரஞ்சசெயல – big task or complex task
முதன்டம நிரல – main program
உடரத்திரத்தி – text editor
(கற்பபமொம்...)
நிரற்பமொ விளக்கம்:
இரந்தமொல என்பத இப்பமொடைலில if condition ஐக் குறிக்கிறத. If condition செரியமொக இரந்தமொல ஒன்றம்,
தவெறமொக இரந்தமொல பிரிசதமொன்றம் நெடைக்கும். கூடு என்பத nested if statement ஐக்குறிக்கிறத. உயர்நிடல
சமமொழிகளமொன ச,ச++ உளளத பபமொன்ற இதில nested if statement கிடடையமொத. அடுக்கு இரந்தமொல என்பத
elif statement ஐக்குறிக்கிறத. அடுக்கடுக்கமொன elif statement கள பசெர்ந்த இரந்தமொல ஏணி அதமொவெத elif ladder
ஐ உரவெமொக்குகிறத. ஏற்கனபவெ ச, ச++ உயர்நிடல சமமொழி கற்றவெர்களுக்கு இத எளிதில புரியும்.
மற்றவெர்களுக்குப் புரியும் வெண்ணம் கீபழ படைம் சகமொடுக்கப் பட்டுளளத.
if condition ; then
commands
fi
if condition ; then
commands
else
commands
fi
if condition ; then
commands
elif condition ; then
commands
fi
# First form
test expression
# Second form
[ expression ]
எளிய எடுத்தக்கமொட்டு:
நிரல 13 பதிப்பு 1:
நிரல 13 பதிப்பு 3:
if [ -f .bash_profile ]
then echo "You have a .bash_profile. Things are fine."
else echo "Yikes! You have no .bash_profile!"
fi
நிரல 15
if [ $(id -u) != "0" ]; then
echo "You must be the superuser to run this script" >&2
exit 1
fi
} # end of home_space
நிரல 17
#!/bin/bash
number=1
நிரல 18
#!/bin/bash
number=1
நிரல 19
#!/bin/bash
set -x
if [ $number = "1" ]; then
echo "Number equals 1"
else
echo "Number does not equal 1"
fi
set +x
நிரலகடள வெழக்கம்பபமொல உடரத்திரத்தியில எழதி இயக்கிப்பமொர்க்கவும்.
கரலச்சசெமொற்கள:
If condition statement - இரந்தமொல கட்டைடளவெரி
Elif statement - இடலசயனில கட்டைடளவெரி
Nested if statement - கூடு இரந்தமொல கட்டைடளவெரி
Elif ladder - இரந்தமொல ஏணி
(கற்பபமொம்...)
நிரற்பமொவிளக்கம்:
ஒர நிரலில பயன்படைக்கூடிய கட்டைடள வெரிகள (program statements), சதமொடைர் சசெயலபமொடுகள
தங்குதடடையின்றி (சுணக்கம் இன்றி) விடரவெமொகச் சசெயலபடை, குறிப்பிட்டை கட்டுப்பமொட்டு சசெயலமுடற
நிடறவெடடைந்தமொல (get satisfied the given condition) சதமொடைர்ந்த சுழற்சமுடறயில (loop) ஒன்ற அலலத
ஒன்றிற்கு பமற்பட்டை கட்டைடளகள (single or multiple statements) இயங்க ஆகக் கட்டைடளயமொனத (for
statement) உதவுகிறத.
இரந்தமொல கட்டைடள எடுத்தக்கமொட்டுகள (If statement examples)
நிரல 20:
#!/bin/bash
கரலச்சசெமொற்கள:
பநெரிய அறிக்டக - Proper statements
சுணக்கம் - slow down
சுழற்சயிற் சசெயற்படை - running in a loop
பதடவெச் சசெயலகள திரம்பச் சசெய்யும் - while condition is right, do the statements again and again
ஆகக் கட்டைடள - for loop statement
சுழற்சயின் உடைல – body of the loop
மமொறி – variable
அடடைவு – directory or folder
உடர – string or text
சுழற்ச முடற - loop
(கற்பபமொம்…)
நிரற்பமொவிளக்கம்:
சசமமொழியில நெமொம் பயன்படுத்தம் அபத சபமொத அடமவுடைன், குறநிரலிலும் நெமொம் ஆகக் கட்டைடள
வெரிகடள அடமக்கலமொம். சசமமொழியில அடமந்தளள அபத வெடகயமொன அடமப்பு அடமக்கப்படுவெதமொல
அடிபிறழமொமல, இம்மிபிசெகமொமல என்ற சகமொடுக்கப்பட்டுளளத. ஆகக் கட்டைடள இங்கு
வெடளவுக்கட்டைடள என்ற சகமொடுக்கப்பட்டுளளத.
ஆகக் கட்டைடளயின் பவெற சல எடுத்தக்கமொட்டுகடள சதமொடைர்ந்த கமொண்பதற்கு முன்னமொல நெமொம்
சசமமொழியில வெடளவுக்கட்டைடளயின் சபமொதஅடமவிடனக் கமொணலமொம்.
for ((i=0;i>=10;i++))
{
Set of statements
}
நெமொம் முன்பு பவெற வெடகயமொன குறநிரலகடளக் கண்படைமொம். இப்சபமொழத சசமமொழியின் சபமொத
அடமவிடனக் சகமொண்டை குறநிரலகடளக் கமொணலமொம்.
நிரல 29:
#!/bin/bash
# Random number generation using C language syntax
for (( i=1; i <= 5; i++ ))
do
echo "Random number $i: $RANDOM"
done
இந்நிரலில சசமமொழியிலுளள அபத வெடகயமொன சபமொத அடமவு உளளத. { } என்னும் குறியீடுகளுக்கு
(curly braces) மமொற்றமொக do, done என்னும் சசெமொற்கள உளளன. 5 முடற இந்த சுழற்சயமொனத
இயக்கப்படுகிறத. சவெளியீடு பின்வெரமமொற அடமகிறத.
சவெளியீடு:
நிரல 30:
#!/bin/bash
# This program explains about infinite loop in shell script
i=1;
for (( ; ; ))
do
sleep $i
echo "Number: $((i++))"
done
இத ஒர முடிவுறமொ சுழற்ச வெடளவுக்கட்டைடளயமொக அடமகிறத. ஆகக் கட்டைடளக்குள இரக்கும்
கட்டைடள வெரிகள திரம்பத்திரம்ப இயக்கப்பட்டு சவெளியீடைமொனத கிடடைக்கிறத. இத சசமமொழியில
உளள அபத வெடகயமொன அடமவெமொகும். இங்கு மமொறியமொனத ஒன்ற கூட்டைப்பட்டு வெரவெதமொல,
வெடளவுக்கட்டைடள எத்தடன முடற இயக்கப்பட்டைத என்படதக் கமொண இயலுமமொற சவெளியீடு
அடமகிறத.
சவெளியீடு:
$ ./niral30.sh
Number: 1
Number: 2
Number: 3
நிரல 31:
#!/bin/bash
#for loop using comma
சவெளியீடு:
$ ./niral31.sh
Number 1: 10
Number 2: 15
Number 3: 20
Number 4: 25
Number 5: 30
நிரல 32:
#!/bin/bash
#! For loop with range in numbers
இங்கு சசமமொழியின் சபமொத அடமவு டகயமொளப்படைவிலடல. ஆகக் கட்டைடள சகமொண்டு ஒன்ற முதல
பத்த வெடர அச்சடை கட்டைடள சகமொடுக்கப்பட்டுளளத.
சவெளியீடு:
$ ./niral32.sh
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
Number: 6
Number: 7
Number: 8
Number: 9
Number: 10
இபத நிரடல சசமமொழி அடமவுடைன் பின்வெரமமொற அடமக்கலமொம்.
நிரல 33:
#!/bin/bash
சவெளியீடு:
$ ./niral34.sh
Number: 1
Number: 3
Number: 5
Number: 7
Number: 9
இந்நிரலில குறிப்பிட்டை மமொறியமொனத, இரண்டு இரண்டைமொக தமொவி ஓடுகிறத. இபத நிரடல சசமமொழியின்
அடமவுடைன் பின்வெரமமொற எழதி இயக்கலமொம்.
நிரல 35:
#!/bin/bash
#Niral 34 with C Language syntax
for ((i=1;i<=10;i=i+2)
do
echo ”Number: $i”
done
நிரல 36:
#!/bin/bash
# fileinfo.sh Fileinfo: operating on a file list contained in a variable
FILES="/usr/sbin/accept
/usr/sbin/pwck
/usr/sbin/chroot
echo
ls -l $file | awk '{ print $9 " file size: " $5 }' # Print 2 fields.
whatis `basename $file` # File info.
# Note that the whatis database needs to have been set up for this to work.
# To do this, as root run /usr/bin/makewhatis.
echo
done
exit 0
இங்கு குறிப்பிட்டை மமொறியில சல பகமொப்புகளின் வெழி (file path) இரத்தப்பட்டு, அங்பக உளள
பகமொப்புக்கள உளளனவெமொ இலடலயமொ, அவ்வெமொற இரந்தமொல அவெற்றின் பகமொப்பின் அளவு என்ன
ஆகியடவெ கண்டைறியப்படுகின்றன. பமற்கூறிய நிரலிடனச் சசெய்த பமொர்க்கவும்.
கரலச்சசெமொற்கள:
சபமொத அடமவு – general syntax
வெடளவுக்கட்டைடள – for loop
குறநிரல – shell script
முடிவுறமொ சுழற்ச வெடளவுக்கட்டைடள – infinite for loop
மமொறி - variable
(கற்பபமொம்...)
நிரற்பமொ விளக்கம்:
வெடளவுக் கட்டைடளயமொனத இன்னும் இரண்டு வெடககளில உயர் நிடல சமமொழிகளில
டகயமொளப்படுகிறத. ஒன்ற ஒர கட்டுப்பமொட்டிடன (condition) ஏற்றக் சகமொண்டு அத செரிசயனில
அதற்குரிய கட்டைடளகடள இயக்குதல. இத சபமொழசதலமொம் கட்டைடள சகமொண்டு சசெயலபடும்
வெடளவுக் கட்டைடளயமொகும் (while loop – entry controlled loop). இத நுடழவு அடைக்கம் அலலத நுடழவுக்
கட்டுப்பமொடு என்ற கரத்தரவில நிகழ்கிறத. இரண்டைமொவெத, சல கட்டைடள வெரிகடள இயக்கிவிட்டு
அதன்பிறகு குறிப்பிட்டை கட்டுப்பமொட்டிடன செரிபமொர்க்கும் கரத்தர. இத வெடரயிலும் கட்டைடள
சவெளிப்புற அடைக்கம் (while loop - exit controlled loop) என்ற அடழக்கப்படுகிறத. பின்வெரம் படைம்
இதடன நென்கு விளக்குவெதமொக அடமந்தளளத. இதடன முன் பசெமொதடன வெடளவுக் கட்டைடள (pretest loop)
பின் பசெமொதடன வெடளவுக் கட்டைடள (post test loop) என்றம் அடழக்கலமொம்.
வெடரயிலும் கட்டைடளக்கு எதிரமொக சபமொழசதலமொம் கட்டைடள (whle loop vs until loop) மூன்ற
படிகடளக் சகமொண்டுளளத.
1. வெடரயிலும் கட்டைடள சுழியலலமொத நிடல (non-zero status) வெடர சசெய்யப்படுகிறத.
2. சபமொழசதலமொம் கட்டைடள சுழி நிடல (zero status) வெடர சசெய்யப்படுகிறத.
3. வெடரயிலும் கட்டைடள எப்சபமொழதபம ஒர முடற தனத கட்டைடள வெரிகடள
இயக்கிவிடுகிறத.
கரலச்சசெமொற்கள:
வெடரயிலும் கட்டைடள – until loop
சபமொழசதலமொம் கட்டைடள – while loop
சவெளிப்புற அடைக்கம் – exit controlled
நுடழவு அடைக்கம் – entry controlled
நிரற்பமொ விளக்கம்:
வெடளவுக்கட்டைடளயின் நுடழவிபலபய சகமொடுக்கப்பட்டுளள, கட்டுப்பமொடைமொனத நிடறவெடடைகிறதமொ
(whether the given condition is satisfied or not) எனச் செரிபமொர்த்த, செரிசயனில தனத உடைலிடன (body of the loop)
திரம்பத்திரம்ப சசெய்யும். சபமொதவெமொக, கட்டுப்பமொடைமொனத சுழிநிடலயமொகபவெ இரக்கும். இப்பமொவில,
சுழிநிடல வெரகின்ற வெடரயிபல என்ற வெரி, குறிப்பிட்டை கட்டுப்பமொடைமொனத நிடறவெடடைவெடதபய
குறிக்கிறத. கட்டுப்பமொடைமொனத நிரலிடனப் சபமொறத்த எந்த வெடகயமொனதமொகவும் இரக்கலமொம். இங்கு சுழி
என்பத சுழியத்டத (zero) மட்டும் குறிக்கமொமல, இலடல (condition is false) என்படதயும் குறிக்கிறத.
கரலச்சசெமொற்கள:
நுடழவு அடைக்கம் – entry controlled
சபமொழசதலமொம் கட்டைடள – while loop
தன்னுடைல பூண்டை – body of the loop
சுழிநிடல – zero status, condition is false
சுழியம், இலடல, இன்டம – zero
செதரங்கப்பலடக – chess board
(கற்பபமொம்...)
நிரற்பமொ விளக்கம்:
வெடரயிலும் கட்டைடளயமொனத தனக்குக் சகமொடுக்கப்பட்டை கட்டுப்பமொடைமொனத செரி அலலத தவெற என்ற
எடதயும் பமொரமொமல, ஒர முடறயமொவெத தனக்குக் சகமொடுக்கப்பட்டுளள கட்டைடளகள அடனத்டதயும்
சசெய்த முடிக்கும். இங்கு சுழியற என்பத non-zero value ஐக் குறிக்கிறத.இத அடனத்த வெடகயமொன உயர்
நிடல சமமொழிகளிலும் உண்டு என்றமொலும், இடதப் பயன்படுத்தம் நிரலர்கள குடறபவெ.
நிரல விளக்கம்:
இந்நிரலில, குறிப்பிட்டை log பகமொப்பு உரவெமொக்கப்படுகிறத. அத 2000 டபட்டுகள ஆன பிறகு அடத
கமொப்புப்படி எடுத்த டவெக்கிறத. அத .bak என்னும் பின்சனமொட்டுடைன் இரக்கிறத. இங்கு வெடரயிலும்
கட்டைடளயமொனத சதமொடைர்ந்த சசெய்யப்படுகிறத. இந்த பகமொப்புகள அடனத்தம் /tmp என்ற அடடைவுக்குள
உரவெமொக்கப்படுகிறத.
சவெளியீடு:
# ./monitor.sh
Sleeping for next 5 seconds
Sleeping for next 5 seconds
நிரல விளக்கம்:
நிரல விளக்கம்:
இத மிக எளிடமயமொகத் தட்டைச்சுச் சசெய்த புரிந்த சகமொளள உதவும் நிரலமொகும். தன்புரிதலுடைன் சசெய்த
பமொர்க்கவும்.
சவெளியீடு:
நிரலிடனச் சசெய்த பமொர்த்த சவெளியீடு அறிய முயலுக.
நிரல 47:
#!/bin/bash
# This script copies files from my homedirectory into the webserver directory.
# A new directory is created every hour.
# If the pics are taking up too much space, the oldest are removed.
while true; do
DISKFUL=$(df -h $WEBDIR | grep -v File | awk '{print $5 }' | cut -d "%" -f1 -)
DATE=`date +%Y%m%d`
HOUR=`date +%H`
mkdir $WEBDIR/"$DATE"
DISKFULL=$(df -h $WEBDIR | grep -v File | awk '{ print $5 }' | cut -d "%" -f1 -)
done
done
நிரல விளக்கம்:
இந்நிரலில குறிப்பிட்டை ஒர முகப்பு அடடைவெமொனத (home directory files) அதிலுளள பகமொப்புக்கடள ஒர
வெடல வெழங்கியில படிசயடுத்த டவெக்கப்படுகிறத.
ஒர புதிய அடடைவெமொனத (new directory) ஒவ்சவெமொர மணி பநெரத்திற்கும் உரவெமொக்கப்படுகிறத.
படைங்களமொனத அதிகமமொக இரப்பின், படழய படைங்கள நீக்கப்பட்டு விடும்.
சவெளியீடு:
பமபல குறித்த நிரல விளக்கங்கடளக் சகமொண்டு நிரலிடன சசெய்த பமொர்த்த விடடையறிய முயலுக.
கரலச்சசெமொற்கள:
சவெளிப்புற அடைக்கம் – exit controlled
வெடரயிலும் கட்டைடள – until loop
சமய்சபமொய் – Boolean value (it may be true or false)
சுழியற – non zero value
குடறந்த சதமொரமுடற – at least once
வெடல வெழங்கி – web server
படிசயடுத்தல – backup
இடணப்சபமொலிக் கூவெல – connection ping command
கூவெல விடடைகள – ping replies
தன்புரிதல – self explanatory
(கற்பபமொம்…)
நிரற்பமொ விளக்கம்:
இங்கு பதர்வு ஆடண எனப்படுவெத case கட்டைடளயிடனக் குறிப்பதமொகும்.
Case கட்டைடள எலலமொ உயர் நிடல சமமொழிகடளப் பபமொன்றம், சஷெல ஸ்கிரிப்டிலும், வெடகக்சகமொர
வெண்ணமமொகச் சசெயலபட்டு அதற்குரிய ஒன்ற அலலத அதற்கு பமற்பட்டை கட்டைடளகடள இயக்கித்
தீர்விடனத் தரகிறத.
இந்தக் கட்டைடளயின் சபமொதவெடமவெமொனத கீபழ சகமொடுக்கப்பட்டுளளத. இந்தக் கட்டைடளயிடன if else
ஏணிக்கு (else if ladder) மமொற்றமொகப் பயன்படுத்தலமொம்.
குறிப்பு: இங்கு case எனத் சதமொடைங்கும் பதர்வுக் கட்டைடள esac என்ற முடிதல பவெண்டும்.
சபமொத அடமவு (General syntax):
case word in
pattern1)
Statement(s) to be executed if pattern1 matches
;;
pattern2)
Statement(s) to be executed if pattern2 matches
;;
pattern3)
Statement(s) to be executed if pattern3 matches
;;
*)
Default statement(s)
esac
இங்கு * ஆனத மற்ற எந்த வெடகக் கட்டைடளகளிலும், இலலமொத வெடக (pattern) ஏபதனும் வெரப்சபற்றமொல
அதடன இயக்குவெதமொக அடமகிறத.
நிரல 48:
#!/bin/sh
[yY] | [yY][Ee][Ss] )
echo "Agreed"
;;
[nN] | [n|N][O|o] )
echo "Not agreed, you can't proceed the installation";
exit 1
;;
*) echo "Invalid input"
;;
esac
நிரல விளக்கம்:
இந்நிரலமொனத ஒர பயனர் ஏற்கிறமொரமொ? மறக்கிறமொரமொ? என்படதக் பகட்டுப் சபறம் நிரலமொக அடமகிறத.
(an user is agreeing or disagreeing) பமொர்க்க மிக எளிடமயமொன நிரலமொக இரப்பினும், இத சகமொடுக்கப்படும்
உடரயிடன (checking the given text) செரிபமொர்க்க உதவுகிறத.
சவெளியீடு (Output):
# ./yorno.sh
Do you agree with this? [yes or no]: YES
Agreed
நிரல 51:
while :
do
# If error exists, display it
if [ "$ERR_MSG" != "" ]; then
echo "Error: $ERR_MSG"
echo ""
fi
case $SEL in
1) NUM_CHICKEN=`expr $NUM_CHICKEN + 1` ;;
2) NUM_STEAK=`expr $NUM_STEAK + 1` ;;
3) echo "Bye!"; exit ;;
*) ERR_MSG="Please enter a valid option!"
கரலச்சசெமொற்கள:
பதர்வெமொடண – case statement
மற்றடவெ வெடகடம – default pattern
வெடக – pattern
தீர்வு வெரிக ள – solution or result statements
சபமொழசதலமொம் கட்டைடள – while statement
இரந்தமொல கட்டைடள – if statement
பயனர் பதர்ந்சதடுப்பமொன் – user menu
(கற்பபமொம்)
நிரற்பமொ விளக்கம்:
இரந்தமொல கட்டைடளயமொனத பற்பல மதிப்புகடள ஏற்கும் தன்டம சகமொண்டைதமொகும். பமலும் அத
செற்பற சமதவெமொகச் சசெயலபடும் தன்டம சகமொண்டைத. ஆனமொல பதர்வுக்கட்டைடளயமொனத ஒபர ஒர
மதிப்டப மட்டுபம தன்னகத்பத ஏற்கக்கூடியத. எனபவெ அத இரந்தமொல கட்டைடளயிடனக் கமொட்டிலும்
விடரவெமொகச் சசெயற்படைக்கூடியத. இத அடனத்த வெடகயமொன உயர் நிடல சமமொழிகளுக்கும் சபமொரந்தம்.
இரப்பினும், ஒன்றிற்கு பமற்பட்டை மமொறிகடளக் சகமொண்டு பதர்வுக் கட்டைடளயிடன நெமொம் சுற்றி
வெடளத்த ஒன்றிற்கு பமற்பட்டை மதிப்புக்கடள இரத்தி இயக்கலமொம்.
இத சதமொடைர்பமொக உளள நிரலகடள இப்சபமொழத கமொணலமொம். முதலில இரந்தமொல
ஏணிக்கட்டைடளயிடனக் (else if ladder command in shell script) கமொணலமொம்.
நிரல 52:
#!/bin/bash
#niral52.sh
#example for elif ladder in shell script
read -p "Enter value of i :" i
if [ $i -eq 5 ]
then
echo "Value of i is 5"
elif [ $i -eq 10 ]
then
echo "Value of i is 10"
elif [ $i -eq 20 ]
then
echo "Value of i is 20"
elif [ $i -eq 30 ]
then
கரலச்சசெமொற்கள:
பற்பல மதிப்புகள – multiple values
இரந்தமொல கட்டைடள – if statement
பதர்வுக் கட்டைடள – case statement
திண்ணமமொய் – sure activity
உகந்த விடடைகள - optimal answers
இரந்தமொல இலடல கூடு - nested if statement
டகபதர்ந்த நிரலர்கள - experienced programmers
(கற்பபமொம்)
நிரற்பமொ விளக்கம்:
குறிப்பிட்டை நிரலில பதடவெயமொன கட்டைடளகள வெரிடசெயில ஓடி, பவெண்டிய விடடைகள கிடடைத்ததம்,
சுழற்சக் கட்டைடளயமொனத (loop statement – while, until or for loop) தடுத்த நிறத்தப்பட்டு அந்தக் குறிப்பிட்டை
சுழற்சயிலிரந்த, சவெளிவெர உதவுவெபத முறிவுக் கட்டைடளயமொகும் (break command). பின்வெரம் நிரலகள
இவ்வெடக முறிவுக்கட்டைடளகடள எவ்வெமொற பயன்படுத்தவெத என்படத விளக்குவெதமொக அடமகின்றன.
நிரல 56:
#!/bin/sh
#niral56.sh
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
நிரல விளக்கம்:
இந்த நிரலில குறிப்பிட்டை சுழற்சக் கட்டைடளயமொனத, 10 முடற சசெய்ய கட்டைடள பிறப்பித்திரந்தமொலும்,
அத 5 முடற முடிந்ததபம முறிக்கப்படுகிறத. எனபவெ சவெளியீடைமொனத 5 எண்கள வெடரக்குபம
வெரகின்றத.
நிரல சவெளியீடு:
#./niral56.sh
0
கரலச்சசெமொற்கள:
பநெர்படை ஓடை – running sequentially
சுழற்சக் கட்டைடள – loop statement
உந்தி சவெளிவெர – jump and come out
முறிபவெ – break
முறிவுக்கட்டைடள – break statement
பயனர் உளளீடு – user input
அணி – beauty
கட்டுப்பமொடு – control
நிரற்பமொ விளக்கம்:
சகமொடுக்கப்பட்டை பவெடலயமொனத நெலல முடறயில முடிக்கப்படை வெடளவுக் கட்டைடளயமொனத தனக்கு
பணிக்கப்பட்டை வெழியில சசென்ற சகமொண்டிரக்கும் சபமொழத, இடடையில புகும் சதமொடைர் கட்டைடள
அலலத இடடைவிடைமொக் கட்டைடள, (continue statement) வெடளவுக் கட்டைடளயிடன தன்வெழியில இழத்த
தனக்குப் பிறகு உளள கட்டைடளகடளச் சசெய்ய விடைமொமல, மண்டும் சதமொடைக்கத்திலிரந்த சசெய்ய
டவெக்கும்.
சபமொதவெடமவு (General syntax:)
சதமொடைர் கட்டைடளயமொனத தனத சபமொதவெடமவிடன பின்வெரம் வெண்ணம் இரண்டு வெடகயமொகக்
சகமொண்டுளளத.
continue
continue n
எடுத்தக்கமொட்டுகள (examples):
...
..
for i in something
do
[ condition ] && continue
cmd1
cmd2
done
..
...
...
..
while true
# format dd-mm-yyyy
NOW=$(date +"%d-%m-%Y")
# Backupfile path
BPATH=/backup/mysql/$NOW
# if backup path does not exists, create it
[ ! -d $BPATH ] && mkdir -p $BPATH
# get database name lists
DBS="$(/usr/bin/mysql -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
# Bakcup file name
FILE="${BPATH}/${db}.gz"
கரலச்சசெமொற்கள:
பணித்த பவெடல – given task
பண்புற நிடறவுற – carried out fully
வெடளவுக் கட்டைடள – loop statement
இடடைவிடைமொக் கட்டைடள – continue statement
சதமொடைர்ந்த நீட்டுபம – to be continued automatically
கமொப்புப்படி – backup
கட்டைடள வெரி மதிப்புக்கள – command line arguments
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
அளவுர சகமொண்டு ஒர நிரடல அழகுற அடமக்க முற்படுவெதமொல, சபமொதப்பயன் சகமொண்டை நிரல வெரிகள
தனிப்பயன் சகமொண்டை வெரிகளமொக மமொறி அடனவெரக்கும் பயன்படும் வெடகயில அடமவுரம். இயக்க
பநெரத்தில சகமொடுக்கப்படும் மதிப்புக்கடள எடுத்தக்சகமொண்டு, அதற்பகற்றமொற்பபமொன்ற விடடைகள தரம்.
# We can also store arguments from bash command line in special array
args=("$@")
#echo arguments to the shell
echo ${args[0]} ${args[1]} ${args[2]} ' -> args=("$@"); echo ${args[0]} ${args[1]} ${args[2]}'
நிரல 63:
#!/bin/bash
#niral63.sh
echo "Positional Parameters"
echo '$0 = ' $0
echo '$1 = ' $1
echo '$2 = ' $2
echo '$3 = ' $3
நிரல 65:
#!/bin/bash
#niral65.sh
if [ $# -gt 0 ]; then
echo "Your command line contains $# arguments"
else
echo "Your command line contains no arguments"
fi
நிரலவிளக்கம்:
இந்நிரலமொனத, அளவுரக்கள சகமொடுக்கப்பட்டுளளனவெமொ, அடவெ என்சனன்ன என்படதக் கண்டைறியும்
வெண்ணம் அடமக்கப்பட்டுளளத.
கரலச்சசெமொற்கள:
கட்டைடளவெரி அளவுரக்கள - command line parameters
கட்டைடளவெரி தரமதிப்புக்கள- command line arguments
அளவுர – parameters
அணிசசெய – decorate or write
தனிப்பயன் – customized
தன்னிரல – personal script
இயக்க பநெரம் – run time
ஈனும் மதிப்பு – given value
விடடைகள - output
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
தனியமொக ஒரவெர் சசெய்யும் பிடழயற்ற நிரலமொனத, நெமொளடடைவில மமொறமொமல நீடித்த உடழக்குசமனில
அந்த நிரல சகமொடுக்கும் பயன்பமொட்டிடன அடனத்தப் பயனர்களும் சபற்றிடை அளவுர சகமொண்டு
அடமத்திடைல பவெண்டும்.
நிரல 66:
கீழ்க்கமொணும் நிரலமொனத மிகவும் சபரிய நிரலமொகும். இந்த நிரலமொனத, ஒர சபமொறியின்
தகவெலகடளத்திரட்டித் தரவெதமொக அடமகிறத. இந்தத் தகவெலகள அடனத்தம் ஒர HTML பகமொப்பமொக
அடமகின்றன.
இத சபரிய நிரலமொடகயமொல, அடவெ பகுக்கப்பட்டு சறசற நிரல தண்டுகளமொகக் (functions)
சகமொடுக்கப்பட்டுளளத. ஒவ்சவெமொர நிரல தண்டும் ஒவ்சவெமொர பவெடலடயச் சசெய்கிறத. குறிப்பிட்டை
பவெடலடயச் சசெய்த முடித்தவுடைன் main க்கு கட்டுப்பமொட்டிடனக் சகமொடுக்கிறத.
#!/bin/bash
#niral66.sh
# system_page - A script to produce a system information HTML file
##### Constants
function system_info
{
echo "<h2>System release info</h2>"
echo "<p>Function not yet implemented</p>"
} # end of system_info
function show_uptime
{
echo "<h2>System uptime</h2>"
echo "<pre>"
uptime
echo "</pre>"
} # end of show_uptime
} # end of drive_space
function home_space
{
# Only the superuser can get this information
} # end of home_space
function write_page
{
cat <<- _EOF_
<html>
<head>
<title>$TITLE</title>
</head>
<body>
<h1>$TITLE</h1>
<p>$TIME_STAMP</p>
$(system_info)
$(show_uptime)
$(drive_space)
$(home_space)
function usage
{
echo "usage: system_page [[[-f file ] [-i]] | [-h]]"
}
##### Main
interactive=
filename=~/system_page.html
கரலச்சசெமொற்கள:
தனியர் – single user
நெலல பயடன நீட்டித் தந்திடின் – working for a long run
பயன்பமொடு – usage, utilization
பயனர் – user
அளவுர – parameters
சற திட்டை அறிக்டக – mini project
சபரிய திட்டை அறிக்டககள – major projects
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
ஒன்றன் பின் ஒன்றமொக வெரிடசெயமொன முடறயில அடமந்த கட்டைடள வெரிகள, குறித்த கமொல
இடடைசவெளியிடன விட்டு மண்டும் விட்டை வெரிகடளத் சதமொடைர்ந்த சசெய்ய உதவி சசெய்வெபத தூக்கக் (sleep
command) கட்டைடளயமொகும்.
General syntax: (சபமொத அடமவு)
தூக்கக் கட்டைடளயின் சபமொத அடமவிடன கமொணலமொம்.
sleep NUMBER[SUFFIX]
Where SUFFIX may be:
s for seconds (the default)
m for minutes.
h for hours.
d for days.
sleep --help
sleep --version
இந்தக் கட்டைடளயின் வெமொயிலமொக, நெமொம் ஒர சநெமொடியிலிரந்த சல நெமொட்கள வெடர தூங்க டவெக்க (sleep state)
முடியும்.
To sleep for 5 seconds, use:
sleep 5
To sleep for 2 minutes, use:
sleep 2m
To sleep for 3 hours, use:
sleep 3h
To sleep for 5 days, use:
sleep 5d
குறிப்பு: இந்த நிரலகள அடனத்தம் அடனத்த வெடகயமொன இலினக்சு இயங்குதளங்களிலும் (Red Hat,
Ubuntu, Suse Linux, Debian, Pinguy, Linux mint) இயங்கும்.
கரலச்சசெமொற்கள:
தனியர் – single user
நெலல பயடன நீட்டித் தந்திடின் – working for a long run
பயன்பமொடு – usage, utilization
பயனர் – user
அளவுர – parameters
சற திட்டை அறிக்டக – mini project
சபரிய திட்டை அறிக்டககள – major projects
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
சுழியம் சதமொடைங்கி ஒன்பத முடிய அடனத்த வெடகயமொன எண்களும் $ என்ற குறியீட்டுடைன் பயன்படுத்தி
அவெற்றின் மதிப்புக்கடள நிரலில இரத்தலமொம். ஒன்பதிற்கு பமல உளள எண்கடள அடழக்கும்
சபமொழத சுரள அடடைப்புக்குறிகளுக்குள அடழக்க பவெண்டும். சுரள அடடைப்புக்குறிகளுக்குள (curly
braces) { } அடழக்க பவெண்டும். அளவுரக்களின் எண்ணிக்டக $# என்ற குறிப்பிலும் அளவுர ஒழங்கு $@
என்பதிலும், நிகழ் சசெயலமுடற எண் அலலத நிகசழண் $$ என்ற குறிப்பிலும், சவெளிபயறம் நிடல $?
என்பதிலும், கடைந்த பின்புல சசெயலமுடற எண் (பின்சனண்) $! என்பதிலும் உளளிரப்பமொக
இரத்தப்பட்டிரக்கும்.
நிரல 71
#!/bin/bash
#niral71.sh
If [ $# = 3 ]
Then
echo “$@”
else
echo “Args are not three”
fi
நிரல விளக்கம்:
இந்த நிரலில, சகமொடுக்கப்பட்டை அளவுரக்கள எந்த வெடகயில வெந்தளளன. அளவுரக்களின்
எண்ணிக்டக மூன்ற இரக்கிறதமொ என்பத அறியப்படுகிறத.
நிரல 72
#!/bin/bash
#niral72.sh
echo “Provide user name”
read i
நிரல 75
echo
echo
if [ -n "$2" ]
then
echo "Parameter #2 is $2"
fi
if [ -n "$3" ]
then
echo "Parameter #3 is $3"
fi
# ...you can add your own comments here for further reference
if [ -n "${10}" ] # Parameters > $9 must be enclosed in {brackets}.
then
echo "Parameter #10 is ${10}"
fi
echo "-----------------------------------"
echo "All the command-line parameters are: "$*""
echo
exit 0
நிரல விளக்கம்:
குறிப்பிட்டை நிரலில குடறந்த அளவு பத்த அளவுரக்களமொவெத பயன்படுத்த பவெண்டும். (# Call this script
with at least 10 parameters, for example) இலடலசயனில நிரலில எதிர்பமொர்த்த சவெளியீடு (output)
கிடடைக்கமொத.
கரலச்சசெமொற்கள:
சுழியம் – Zero
ஒன்றமொய் – முதலமொய் (first)
இறவெமொய் – last
எண்டணச் சுரளமொய் – number in curly braces eg {333}
எடதயும் அடழத்திடும் – call anything
எண்ணுதல (எண்ணிக்டக) – count ($#)
நிகசழண் (நிகழ் சசெயலமுடற எண் $$) – current process id
ஒழங்கு - $@ arguments in the given order
சவெளிநிடல – exit status
பின்சனண் - கடைந்த பின்புல சசெயலமுடற எண் $! – Previous process id
அளவுபர - அளவுரபவெ
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
பதடவெயமொனவெற்டற செரியமொன பநெரத்தில சசெய்த, விடடைகடள அளித்த செரியமொன முடறயில சசெயலகடள
நெடைத்திடை உதவுதல, ஒர நிரலில உளள கட்டைடளவெரிகள எவ்வெமொற அடமகின்றன என்படதப் சபமொறத்பத
அடமகிறத.
நிரல 76
#!/bin/bash
#niral76.sh
mkdir .recyclebin
mv $@ .recyclebin
echo –n “Please enter the filename to delete:”
read file
mv $file .recyclebin
நிரல விளக்கம்:
இந்நிரலமொனத ஒர கட்டைடளவெரி ரீடசெக்கிள பின் (recycle bin) பபமொன்ற சசெயலபடுகிறத. எந்த ஒர
பகமொப்பிடனயும் அழிப்பதற்கு நெமொம் rm கட்டைடளயிடனப் பயன்படுத்தபவெமொம். இங்கு .recyclebin என்பத
ஒர சபமொதவெமொன அடடைவு ஆகும். ஆனமொல அத ஒர recyclebin பபமொன்ற சசெயலபடுகிறத.
நிரல 77
#!/bin/bash
#niral77.sh
a=$1
if [ “$a” = L ]
then
ls –l .recyclebin
fi
if [ “$a” = D ]
then
echo –n “Please enter the filename to delete:”
read file
for i in *.pcx ; do
CMD="convert -quality 625 $i `echo $i | sed -e 's/\.pcx$/.png/'`"
# Show the command-line to the user:
echo $CMD
# Execute the command-line:
eval $CMD
done
நிரல விளக்கம்:
இந்த நிரலமொனத, ImageMagick என்னும் சபமொதியிடன உளசளடுத்த அடமந்தளளத. இப்சபமொதியமொனத,
சகமொடுக்கப்பட்டை படைத்திடன, பவெசறமொர பகமொப்பு அடமவில (changing to png format) மமொற்றித்தர
உதவுகிறத. இத ஒபர கட்டைடளவெரி மூலம் பல படைங்களின் பகமொப்பு அடமவுகடள மமொற்றித் தரகிறத.
நிரல 79
#!/bin/bash
#niral79.sh
#To erase a file proper, requires writing random bytes into the disk blocks occupied by the file.
for i in * ; do
dd if=/dev/urandom \
of="$i" \
bs=1024 \
count=`expr 1 + \
\`stat "$i" | grep 'Size:' | awk '{print $2}'\` \
/ 1024`
done
நிரல விளக்கம்:
ஒபரஒர கட்டைடளவெரியமொனத புரிந்த சகமொளவெதற்கு ஏதவெமொக, மடித்த மடித்தக் சகமொடுக்கப்பட்டுளளத.
இங்பக ஒர குறிப்பிட்டை பகமொப்பில Random எண்ணமொனத இரத்தப்பட்டு ஏற்கனபவெ இரக்கும் சசெய்திகள
அழிக்கப்படுகின்றன. இத disk blocks கடள அழிக்கப்பயன்படுகிறத.
நிரல 80
#!/bin/sh
if [ "$IDX" == 0 ]; then
IDX=`expr length $FILE`
else
IDX=`expr $IDX - 1`
fi
if [ -n "$1" ]
# Test whether command-line argument is present (non-empty).
then
lines=$1
else
lines=$LINES # Default, if not specified on command-line.
fi
# Stephane Chazelas suggests the following,
#+ as a better way of checking command-line arguments,
#+ but this is still a bit advanced for this stage of the tutorial.
#
# E_WRONGARGS=85 # Non-numerical argument (bad argument format).
#
# case "$1" in
# "" ) lines=50;;
# *[!0-9]*) echo "Usage: `basename $0` lines-to-cleanup";
# exit $E_WRONGARGS;;
# * ) lines=$1;;
# esac
#
#* Skip ahead to "Loops" chapter to decipher all this.
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ] # or if [ "$PWD" != "$LOG_DIR" ]
# Not in /var/log?
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi # Doublecheck if in right directory before messing with log file.
exit 0
# A zero return value from the script upon exit indicates success
#+ to the shell.
கரலச்சசெமொற்கள:
தக்க சநெமொடியில – proper time
தீர்வுற அடமந்திடும் – solving issues
சபமொதவெமொய்ச் சசெய்திடும் பற்பல சசெயலகள – common tasks
வெரிகள எங்ஙனம் வெந்தன – order of the commands
சபமொதி - package
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
நிரலில சகமொடுக்கப்பட்டை அளவுரக்கள அபத வெரிடசெயில அடமந்திரந்தமொல, அத அந்த நிரல
அடமத்தவெரக்கு மட்டுமின்றி, மற்ற பயனர்களுக்கும் பயனளிக்கும். அபத அளவுரக்கள, சநெடுங்கமொலம்
மற்ற பயனர்களுக்கும் உடழக்க மமொற்றக் கட்டைடளயிடனப் பயன்படுத்ததல சறந்தத.
நிரல 82
#!/bin/bash
#shift command in positional parameters
#niral82.sh
நிரல 84:
#!/bin/bash
#niral84.sh
# This script can clean up files that were last accessed over 365 days ago.
shift
done
நிரல விளக்கம்:
இந்நிரல வெமொயிலமொக, நெமொம் 365 நெமொளுக்கு பமல உளள பகமொப்புக்கடள எளிடமயமொக அழிக்க முடியும்.
இங்கு மமொற்றக்கட்டைடளயமொனத எளிடமயமொக, அளவுரக்களமொகக் சகமொடுக்கப்பட்டை அடுத்தடுத்த
அடடைவுகடள எடுத்தமொளப்பயன்படுகிறத. இத்தடகய நிரலகள தமொனியங்கு நிரலகளமொக நிடறயப்
பயன்படுத்தப்படுகின்றன.
நிரல 85:
#!/bin/bash
#niral85.sh
if [ $# -lt 1 ]; then
echo "Usage: $0 package(s)"
exit 1
fi
while (($#)); do
yum install "$1" << CONFIRM
y
CONFIRM
shift
done
நிரல விளக்கம்:
இந்நிரல மூலமமொக நெமொம் ஒன்றிற்கு பமற்பட்டை சபமொதிகடள விடரவெமொக நிறவெ இயலும். (This is used to
install multiple packages at once.) ஒவ்சவெமொர சபமொதிகளமொக நிறவிய பின்னர் தரமதிப்பமொகக்
சகமொடுக்கப்பட்டை அடுத்த சபமொதியிடன மமொற்றக் கட்டைடள மூலமமொக நிரல எளிதில அறிந்த சகமொளளும்
வெண்ணம் நிரல அடமக்கப்பட்டுளளத.
கரலச்சசெமொற்கள:
அடமந்த வெண்ணம் – in the given order
அளவுர இரக்க – available parameter
நிரலின் பயன் – usage of the script
சநெடிதமொய் ஆகுமமொம் – expanding the usage
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
முடறயமொகச் சசெயலபட்டுக் சகமொண்டிரக்கும் நிரலிடன, ஒர குறிப்பிட்டை சசெயற்பமொடு முடிந்தவுடைன்
ஏபதனும் ஒர தமொடடைடயப் அதமொவெத signal ஐ கண்ணி (trap command) கட்டைடளயிடனப் பயன்படுத்தி
நிறத்த முடியும்.
Syntax (சபமொத அடமவு)
இக்கட்டைடளயின் சபமொத அடமவு பின்வெரமமொற அடமகிறத.
trap arg signal
trap command signal
trap 'action' signal1 signal2 signalN
trap 'action' SIGINT
trap 'action' SIGTERM SIGINT SIGFPE SIGSTP
trap 'action' 15 2 8 20
நிரல 86
#!/bin/bash
#niral86.sh
# capture an interrupt # 0
trap 'echo "Exit 0 signal detected..."' 0
# display something
echo "This is a test"
TEMP_FILE=/tmp/printfile.txt
function clean_up {
function usage {
function clean_up {
function error_exit {
if [ $# != "1" ]; then
usage
error_exit "one file to print must be specified"
fi
if [ ! -f "$1" ]; then
error_exit "file $1 cannot be read"
fi
கரலச்சசெமொற்கள:
தமொடடை – signal
கண்ணி – trap command
குறித்த நிகழ்சசெயல – particular action
இடடையினில மறித்த – interrupt in between
தூய்டமயமொக்கம் – house keeping
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
இந்த சபமொரத்தம் சபறம் கட்டைடளயமொனத, அளவுர அலலத தரமதிப்பிடன செரிபமொர்த்த அடதச் செரிவெர
நிரலில பயன்படுத்த உதவுகிறத. இத சபரம்பமொலும் while loop என்றடழக்கப்படைக்கூடிய
சபமொழசதலமொம் கட்டைடளயினூபடை சசெலுத்தப் பயன்படுகிறத. (This command is used to check valid command
line argument are passed to script. Usually with while loop.) இத சபரம்பமொலும் சதமொடைக்கப்பயனமொளர்களமொல
பயன்படுத்தப்படுவெதிலடல. நிரலின் ஊபடை நீந்திடை டவெத்த என்பத, அளவுரவிடன ஆரமொய்ந்த
எதற்குப் சபமொரத்தமமொனத எத என்படதயும், தவெறமொன தரமதிப்டபத் தவெற என்படதக் கமொட்டுவெடதயும்
குறிப்பிடுகிறத.
Syntax (சபமொத அடமவு)
இத கீழ்க்கமொணும் சபமொதவெடமவிடனத் தன்னகத்பத சகமொண்டுளளத.
getopts {optsring} {variable1}
நிரல 90
#!/bin/bash
#go.sh
#niral90.sh
while getopts ":a" opt; do
case $opt in
a)
echo "-a was triggered!" >&2
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
நிரல விளக்கம்:
# ./go_test.sh
எதவும் நிகழவிலடல (Nothing happened? Right. getopts didn't see any valid or invalid options (letters preceded by a
dash), so it wasn't triggered.)
# ./go_test.sh /etc/passwd
இங்கும் எதவும் நிகழவிலடல. (Again — nothing happened. The very same case: getopts didn't see any valid or
invalid options (letters preceded by a dash), so it wasn't triggered.)
The arguments given to your script are of course accessible as $1 - ${N}.
Calling it with option-arguments
Now let's trigger getopts: Provide options.
இங்கு செரியமொன ஒன்ற சகமொடுக்கப்படுகிறத.
# ./go_test.sh -b
Invalid option: -b
ஆனமொல இத இந்த நிரலுக்குப் சபமொரத்தமற்ற ஒன்றமொகும். எனபவெ விடடையமொனத கீழ்க்கமொணுமமொற
கிடடைக்கிறத.
As expected, getopts didn't accept this option and acted like told above: It placed? into $opt and the invalid option
character (b) into $OPTARG. With our case statement, we were able to detect this.
Now, a valid one (-a):
இங்கும் செரியமொன ஒன்ற சகமொடுக்கப்படுகிறத.
# ./go_test.sh -a
-a was triggered!
You see, the detection works perfectly. The a was put into the variable $opt for our case statement.
Of course it's possible to mix valid and invalid options when calling:
# ./go_test.sh -a -x -b -c
-a was triggered!
Invalid option: -x
Invalid option: -b
Invalid option: -c
நிரல விளக்கம்:
இந்த நிரலில விலங்கினத்தின் சபயர், அகடவெ, பமொலினம், எடடை மமொதிரி(demo) ஆகியடவெ உளளீடைமொக
வெமொங்கப்பட்டு சவெளியீடைமொனத பின்வெரமமொற கிடடைக்கிறத.
We have script called ani which has syntax as
ani -n -a -s -w -d
Options: These are optional argument
-n name of animal
-a age of animal
-s sex of animal
-w weight of animal
-d demo values (if any of the above options are used their values are not taken)
சவெளியீடு:
Save it and run as follows
# chmod +x ani
# ani -n Lassie -a 4 -s Female -w 20Kg
# ani -a 4 -s Female -n Lassie -w 20Kg
# ani -n Lassie -s Female -w 20Kg -a 4
கரலச்சசெமொற்கள:
அளவுர – parameter
அடமவு – sequence system
செரியமொன வெண்ணம் சீர்டம – check and validate
நிரல – script
சவெளியிடு – output or answer
சபமொரத்தபம – getopts command
சதமொடைக்கப்பயனமொளர் - beginners
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
இயங்குதளத்தில அலலத பகமொப்பில உளள தரவுகள, அடுக்கடுக்கமொக இரக்க, நெமக்கு பவெண்டிய
நிடரகள (columns) மட்டும் தனித்த எடுக்க சவெட்டுக்கட்டைடளயிடனப் பயன்படுத்தி பதடவெயமொன
தீர்விடனப் சபறலமொம்.
Syntax (சபமொத அடமவு)
சவெட்டுக் கட்டைடள கீழ்க்கமொணும் சபமொதவெடமவிடனத் தன்னகத்பத சகமொண்டுளளத.
cut –d(delimiter) f(field no) filename
eg: cut –d: f1 /etc/passwd
நிரல 91
கீழ்க்கமொண்படவெ ஒர பகமொப்பில (data.txt) இரப்பதமொகக் சகமொளக.
one two threefour five
alpha beta gamma delta epsilon
#!/bin/bash
#niral91.sh
#cut statement in the file filtering
cut -f 3 data.txt
நிரல விளக்கம்:
இதில இந்தக் பகமொப்பில உளள மூன்றமொம் நிடர மட்டும் சவெளியீடைமொகக் கிடடைக்கிறத.
three
gamma
நிரல 92
#!/bin/bash
#niral91.sh
#cut statement
நிரல 93
#!/bin/bash
#niral93.sh
#cut statement example 3
cut -f 1 -d ':' /etc/passwd
நிரல விளக்கம்:
இங்கு delimiter (எலடல) என்ற அடழக்கக் கூடிய ஒன்ற பயன்படுத்தப்படுகிறத. இதில : என்படதக்
சகமொண்டு நிடரகள பிரிக்கப்பட்டு விடடைகள அதற்பகற்றமொற்பபமொன்ற வெரகின்றன. f1 என்பத நிடர
ஒன்டறக் குறிக்கிறத.
root
daemon
bin
sys
chope
கரலச்சசெமொற்கள:
தரவுகள – data
நிடரகள – columns or fields
சவெட்டுக் கட்டைடள – cut command
சபமொறி நிடறஞர் – system admins
எலடல (வெரம்புக்குறி) – delimiter
பிரிப்பமொன் - separator
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
ஒட்டுக் கட்டைடளயிடனக் சகமொண்டு கட்டைடள வெரி அடமத்தமொல, சவெவ்பவெற பகமொப்புக்களில உளள
உடரகள, அவெற்றில உளள தரவுகடள எடுத்த ஒபர பகமொப்பில உளள தரவு பபமொன்ற தர உதவுகிறத.
Syntax (சபமொத அடமவு)
paste [OPTION]... [FILE]…
Options are as follows:
-d, --delimiters=LIST reuse characters from LIST instead of tabs.
-s, --serial paste one file at a time instead of in parallel.
--help Display a help message, and exit.
--version Display version information, and exit.
paste file1.txt file2.txt
கீழ்க்கமொண்படவெ நிரலகளமொக அன்றி தனித்தனிக் கட்டைடளகளமொகக் சகமொடுக்கப்பட்டுளளன.
நிரல 96
#!/bin/bash
#niral96.sh
cat file1
Unix
Linux
Windows
cat file2
Dedicated server
Virtual server
cat file3
Hosting
Machine
Operating system
நிரல விளக்கம்:
இந்தக் கட்டைடளத் சதமொடைரில, மூன்ற பகமொப்புக்கள இடணந்த ஒபர சவெளியீடைமொகக் கிடடைக்கிறத.
கரலச்சசெமொற்கள:
ஒட்டுக் கட்டைடள – paste command
தரவுகள – data
உடரகள – text or string
சவெவ்பவெற பகமொப்பில – different files
(கற்பபமொம்)
- நிரற்பமொ 27
நிரற்பமொவிளக்கம்:
முடனயம் என்றடழக்கப் படைக்கூடிய terminal எந்த வெடக அளவெமொனமொலும் (maximize or minimize) அதடன
சீரமொகத் தப்புரவு சசெய்திடை இடு (tput) கட்டைடளயமொனத உதவுகிறத.
Examples (எடுத்தக்கமொட்டுக்கள)
tput longname
tput -T screen longname
tput colors
tput cols
tput bce && echo "True"
paste file1.txt file2.txt
நிரல 101
#!/bin/bash
#niral101.sh
alias term_size=`echo "Rows=$(tput lines) Cols=$(tput cols)"'
# term_size2 - Dynamically display terminal window size
redraw() {
clear
echo "Width = $(tput cols) Height = $(tput lines)"
}
redraw
while true; do
:
done
நிரல விளக்கம்:
இங்கு SIGWINCH என்ற தமொடடையமொனத (signal) சகமொடுக்கப்பட்டு கீழ்க்கமொணுமமொற திடரயிடன
உரமமொற்றம் சசெய்யப்பயன்படுகிறத.
நிரல சவெளியீடு:
redraw() {
local str width height length
width=$(tput cols)
height=$(tput lines)
str="Width = $width Height = $height"
length=${#str}
clear
tput cup $((height / 2)) $(((width / 2) - (length / 2)))
echo "$str"
}
redraw
while true; do
:
done
நிரல விளக்கம்:
clear
tput bold; echo "This text has the bold attribute."; tput sgr0
tput rev; echo "This text has the reverse attribute"; tput sgr0
tput sgr0
echo
கரலச்சசெமொற்கள:
இடு கட்டைடள – tput command
எந்த வெடக அளவெமொனமொலும் – maximize or minimize
உடரகள – text or string
சவெவ்பவெற பகமொப்பில – different files
(கற்பபமொம்)
- நிரற்பமொ 28
நிரற்பமொவிளக்கம்:
இடு கட்டைடளயமொனத தன்னகத்பத பத்த வெண்ணங்கடளக் சகமொண்டுளளத. அவெற்டறக் சகமொண்டு
அழகுற நெமத முடனயத்தின் வெண்ணங்கடள மமொற்றி இன்புறலமொம்.
உடர வெண்ணங்கள (Text color)
Value Color
0 Black
1 Red
2 Green
3 Yellow
4 Blue
5 Magenta
6 Cyan
7 White
8 Not used
9 Reset to default color
நிரல 104
#!/bin/bash
#script104.sh
# tput_colors - Demonstrate color combinations.
நிரல சவெளியீடு:
குறிப்பிட்டை நிரடலக் சகமொண்டு நெமொம் பமற்கமொணும் வெண்ணம் முடனயத்திடன சமரபகற்றலமொம்.
நிரல 105
திடரயிடன அழித்தல (Clearing the Screen)
கீழ்க்கமொணும் கட்டைடளகடளக் சகமொண்டு நெமொம் ஒர திடரயின் குறிப்பிட்டை இடைத்திடன அழிக்கலமொம்.
Capname Description
smcup Save screen contents (திடரயின் இரப்பிடன கமொக்கும்.)
rmcup Restore screen contents (திடரயின் இரப்பிடன மளடமக்க உதவும்.)
el Clear from the cursor to the end of the line (சுட்டியின் சதமொடைக்கத்திலிரந்த குறிப்பிட்டை வெரியின் இறதி
வெடர அழிக்க உதவும்.)
el1 Clear from the cursor to the beginning of the line (சுட்டியின் சதமொடைக்கத்திலிரந்த குறிப்பிட்டை வெரியின்
சதமொடைக்கம் வெடர அழிக்க உதவும்.)
ed Clear from the cursor to the end of the screen (சுட்டியின் சதமொடைக்கத்திலிரந்த திடரயின் இறதி வெடர
அழிக்க உதவும்)
clearClear the entire screen and home the cursor (திடர முழக்க அழிக்க உதவும். )
#!/bin/bash
#niral105.sh
# tput_menu: a menu driven system information program
# Save screen
tput smcup
_EOF_
# Act on selection
case $selection in
1) echo "Hostname: $HOSTNAME"
uptime
;;
2) df -h
;;
3) if [[ $(id -u) -eq 0 ]]; then
# Restore screen
tput rmcup
echo "Program terminated."
நிரல விளக்கம்:
நிரற்பமொவிளக்கம்:
tput என்னும் இடு கட்டைடள சகமொண்டு கீழ்க்கமொணும் நிரலிடனச் செரிவெர எழதி நிடறவு சசெய்தமொல,
அழகமொன மணிப்சபமொறி (terminal clock) பண்புர (tensor) அடமவில வெந்த சவெளியீடைமொகக் (output)
கிடடைக்கும்.
நிரல 106
#niral106
#!/bin/bash
terminal_cols="$(tput cols)"
terminal_rows="$(tput lines)"
}
banner_size() {
banner_cols=0
while read; do
[[ ${#REPLY} -gt $banner_cols ]] && banner_cols=${#REPLY}
((++banner_rows))
done < <(banner "12:34 PM")
}
display_clock() {
local row=$clock_row
while read; do
tput cup $row $clock_col
echo -n "$REPLY"
((++row))
done < <(banner "$(date +'%I:%M %p')")
}
trap 'tput sgr0; tput cnorm; tput rmcup || clear; exit 0' SIGINT
blank_screen=
for ((i=0; i < (terminal_cols * terminal_rows); ++i)); do
blank_screen="${blank_screen} "
done
if tput bce; then # Paint the screen the easy way if bce is supported
clear
else # Do it the hard way
tput home
echo -n "$blank_screen"
fi
tput cup $clock_row $clock_col
display_clock
கரலச்சசெமொற்கள:
இடுவெமொம் கட்டைடள – tput command
நிரல – script
கடிடக (மணிப்சபமொறி) – clock
சவெளியிடு - output
பண்புர – tensor
நிடல உணர்த்திப்பட்டடை - progress bar
முடனயக் கடிடக - terminal clock
ஆகக் கட்டைடள – for loop
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
பயனர் சகமொடுத்த பின்புலத்தில சசெயலபடும் கட்டைடளயமொனத, குறிப்பிட்டை முடனயமமொனத,
மூடைப்பட்டை பின்னரம் சசெயலபடை பவெண்டுசமனில சசெயலிழக்கமொ (nohup) கட்டைடள
பயன்படுத்தப்படைல பவெண்டும்.
சபமொத அடமவு (General syntax):
#nohup command-name &
#nohup /path/to/command-name arg1 arg2 &
பின்புலத்தில இரக்கும் பவெடலகடளப் பமொர்க்ககீழ்க்கமொணும் கட்டைடள உதவுகிறத.
#jobs –l
நிரல 107
#niral107
#!/bin/bash
# nohup find / -xdev -type f -perm +u=s -print > out.txt &
நிரல விளக்கம்:
குறிப்பிட்டை நிரலமொனத பின்புலத்தில எவ்வெமொற find கட்டைடளயிடன சசெயலிழக்கமொமல சசெய்யும்
வெண்ணம் பயன்படுத்தவெத என்ற விளக்குகிறத.
நிரல 108
#niral108
#!/bin/bash
Example: Printing lines to both standard output & standard error
while(true)
do
echo "standard output"
echo "standard error" 1>&2
sleep 1;
done
கரலச்சசெமொற்கள:
பயனர் – user
பின்புலக் கட்டைடள – background command
முடனயம் – terminal
மடிந்த பின்னரம் – closed after the terminal
தீர்வு விடுக்க – give output
சசெயலி ழக்கமொ – nohup command
கடைவுச்சசெமொலலற்ற நுடழவெடமவு – passwordless authentication
வெழங்கி - Server
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
இங்கு அடமந்தளள விதவிதமமொன நிரலகள எவ்வெமொற தமொமமொகபவெ ஏற்படும் பதிடககள
அழிக்கப்பயன்படுகின்றன என்படதக் கமொட்டிடை உதவுகின்றன.
சபமொத அடமவு (General syntax):
நிரல 109
#niral109
# Cleanup
# Run as root, of course.
cd /var/log
cat /dev/null > messages
cat /dev/null > wtmp
echo "Log files cleaned up."
நிரல விளக்கம்:
இத மிகவும் எளிடமயமொன நிரல. இதடன நெமொம் பவெர்ப்பயனர் என்னும் பயனடரக் சகமொண்டு (root user)
மட்டுபம இயக்க முடியும். சபமொதவெமொன பயனர்கள இயக்க பவெண்டுசமனில அதற்குத் தனியமொக நெமொம்
உத்தரவுகடளக் (permissions) சகமொடுக்க பவெண்டும்.
நிரல 110
#niral110
#!/bin/bash
# Proper header for a Bash script.
# Cleanup, version 2
#niral111
#!/bin/bash
# Cleanup, version 3
# Warning:
# -------
# This script uses quite a number of features that will be explained
#+ later on.
# By the time you've finished the first half of the book,
#+ there should be nothing mysterious about it.
LOG_DIR=/var/log
ROOT_UID=0 # Only users with $UID 0 have root privileges.
LINES=50 # Default number of lines saved.
E_XCD=86 # Can't change directory?
E_NOTROOT=87 # Non-root exit error.
if [ -n "$1" ]
# Test whether command-line argument is present (non-empty).
then
lines=$1
else
lines=$LINES # Default, if not specified on command-line.
fi
cd $LOG_DIR
tail -n $lines messages > mesg.temp # Save last section of message log file.
mv mesg.temp messages # Rename it as system log file.
cat /dev/null > wtmp # ': > wtmp' and '> wtmp' have the same effect.
echo "Log files cleaned up."
# Note that there are other log files in /var/log not affected
#+ by this script.
exit 0
# A zero return value from the script upon exit indicates success
#+ to the shell.
நிரல விளக்கம்:
இத மற்ற நிரலகள பபமொல சபமொதவெமொக இயங்கமொமல, எந்தப் பயனர் இயக்குகிறமொர் அவெரக்கு
எவ்வெடகயமொன உத்தரவுகள வெழங்கப்பட்டுளளன என்படதசயலலமொம் ஆய்ந்தறிந்த
அதற்பகற்றமொற்பபமொன்ற இயங்கி சவெளியீட்டிடனத் தரகிறத. சபமொதவெமொக இவ்வெடகயமொன நிரலகடள
இயக்கி எழதம் சபமொழத நெமொம் பயனடரயும் அவெரடடைய உத்தரவுகடளயும் கரத்தில சகமொண்டு
சசெயலபடுவெத பதடவெயமொகிறத.
கரலச்சசெமொற்கள:
பயனர் – user
புதிய பதிடக – new logs
தவெறிலமொ விதமமொய் – right manner
தப்புரவு சசெய்திடை – clean
பவெர்ப்பயனர் – root user
மட்டைடம – reset
அடமவுகள - settings
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
நிரலில சகமொடுக்கப்படும் உளளீடு மற்றம் சவெளியீடுகடள உற்ற கவெனித்த, பதடவெயமொனடத டவெத்த
மற்றடதப் பிரித்த, சபமொதி எனப்படுகின்ற package
செரிவெர பயன்படுத்திடை உதவும் நிரபல கீழ்க்கமொணும் நிரலமொகும்.
நிரல 112
#!/bin/bash
#niral112
# rpm-check.sh
SUCCESS=0
E_NOARGS=65
if [ -z "$1" ]
then
echo "Usage: `basename $0` rpm-file"
exit $E_NOARGS
fi
exit 0
நிரல விளக்கம்:
பமபல சகமொடுக்கப்பட்டுளள இந்த நிரலில, Archive Description என்பத முதலில கண்டைறியப்பட்டு, அத
Archive Listing இல உளளதமொ இலடலயமொ என பசெமொதிக்கப்படுகிறத. விடடையமொனத SUCCESS என்ற
வெரமமொயின் rpm can be installed என சவெளியீட்டிடன பயனரக்கு அளிக்கிறத, இலடலசயனில cannot be
installed. என்ற சதரிவிக்கிறத. இந்த நிரலிடன டவெத்த குறிப்பிட்டை சபமொதியமொனத அந்தப் சபமொறிக்கு
ஏற்றதமொ இலடலயமொ என எளிதில அறிந்த சகமொளள முடிகிறத. இத சபமொதவெமொக அடனத்த வெடகயமொன
சபமொதிகளுக்கும் உதவும் வெடகயில அடமக்கப்பட்டுளளத.
நிரல 113 - சற விவெர நிரல (tips script)
#!/bin/bash
#niral113
tr 'a-z' 'A-Z'
# Letter ranges must be quoted
#+ to prevent filename generation from single-letter filenames.
Exit 0
# ======================================================
நிரல விளக்கம்:
பமற்கண்டை நிரல தன்னகத்பத உளள வெடளவுக் கட்டைடளயிடன பின்புலத்தில இயக்கப் பயன்படுகிறத.
இங்கு & என்னும் குறியீடைமொனத, குறிப்பிட்டை வெடளவுக்கட்டைடளயிடன (loop) பின்புலத்பத (background)
# Occasionally also:
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# (The first 'echo' doesn't execute. Why?)
exit 0
கரலச்சசெமொற்கள:
உளளிடு – input
சவெளியிடு – output
உற்ற பநெமொக்கி – anlysing
பவெண்டிய – required
பவெறடதத் – non-required
சபமொதியதன் - package
நிரபல - script
சபமொதி – RPM package (Red Hat Package Manager)
வெடளவுக்கட்டைடள – loop
பின்புலம் - background
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
மற்ற கணினி உயர் நிடல சமமொழிகள பபமொலிலலமொமல, முடனயக் குறநிரலமொனத (shell script) முழஎண்
(integer), செரம் அலலத பகமொடவெ (string)ஆகியவெற்டற அறதியிட்டு கூறமொமல அடவெ அடவெ இரக்கும்
இடைத்திற்பகற்ப சபமொரடள இயங்கு பநெரத்தில (run time) எடுத்தக் சகமொண்டு முடனயத்தின் சூழடலச்
(depends on the terminal) செமொர்ந்த அடமவெபத மமொறியமொகும் (variable).
நிரல 115
#!/bin/bash
#niral115.sh
# int-or-string.sh
a=2334 # Integer.
let "a += 1"
echo "a = $a " # a = 2335
echo # Integer, still.
c=BB34
exit $?
நிரல விளக்கம்:
ஆங்கிலத்திபல untyped என்றடழக்கப்படைக்கூடிய அறிவிப்புச் சசெய்யப்படைமொத மமொறிகள, அடவெகளின்
அடமவிடைத்டதப் சபமொறத்த, ஆச அலலத செமொபம் ஆகிய இரண்டடையுபம தரகின்றன. குறநிரலில
எளிதமொக குறியீட்டு வெரிகடளக் சகமொடுக்க, அலலத நீங்கள சசெயலிழக்கப் பபமொதமமொன கயிற சகமொடுக்க
இத்தடகய அறிவிக்கப்படைமொத மமொறிகள உதவுகின்றன. எனினும், இடவெ தலலியமற்ற குறநிரலகடள
(non-accurate scripts) எழதிப்பமொர்க்க, நுட்பமமொன பிடழகளுக்கு உத்தரவு சகமொடுக்க உதவுகின்றன.
மமொறிகடள தன்னகத்பத டவெத்தக் சகமொண்டு, குறநிரலிடன பதடவெயமொன பபமொத இயக்கம் சசெய்வெடத
முடனயம் சபமொதவெமொக மறக்கிறத.
நிரல 116:
#!/bin/bash
# niral116.sh
E_NOARGS=75
if [ -z "$1" ]
then
echo "Usage: `basename $0` [domain-name]"
exit $E_NOARGS
fi
exit $?
நிரல விளக்கம்:
பமபல குறிப்பிடைப்பட்டுளள இந்த நிரலமொனத, மூன்ற சவெவ்பவெற வெழங்கிகளில சசெயலபட்டு,
அதனுடடைய சபயரிடனச் செரிவெரக் கண்டுணர உதவுகிறத. இந்நிரலிடனக் கண்டிப்பமொக பவெர்ப்பயனர்
மட்டுபம இயக்க பவெண்டும். இடத நெமொம் ripe.net, cw.net, radb.net ஆகிய தளங்களில இயக்குகிபறமொம்.
குறிப்பிட்டை தளங்கள செரியமொன சபயர் சகமொண்டைடவெயமொ என்படதக் கண்டுசகமொண்டு அடத சவெளியீடைமொகத்
தரகிறத.
நிரல 117:
கீபழ ஒபர நிரலமொகக் சகமொடுக்கப்படைமொமல, தனித்தனி கட்டைடளவெரிகளமொகக் சகமொடுக்கப்பட்டுளளத.
அடனத்தம் எளிடமயமொன கட்டைடளவெரிகளதமொம். எவ்வெமொற echo என்ற கட்டைடளயமொனத சவெவ்பவெற
வெடகயமொக பயன்படுத்தப்படுகிறத என்படத எளிதமொக அறிய உதவுகிறத. இடத ச சமமொழியில escape
sequences என்ற அடழக்கிறமொர்கள. ச சமமொழி சகமொண்படை Linux எழதப்பட்டுளளதமொல, இதவும் அபத
பபமொல சசெயலபடுகிறத.
bash$ echo hello\!
hello!
bash$ echo "hello\!"
hello\!
bash$ echo \
>
bash$ echo "\"
>
bash$ echo \a
a
bash$ echo "\a"
\a
கரலச்சசெமொற்கள:
உயர் நிடல கணினி சமமொழிகள - high level computer languages
முடனயக் குறநிரல - shellscript
முழஎண் - integer
பகமொடவெ - string
மமொறி - variable
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
சதமொடைர்ந்த ஓடிக் சகமொண்டிரக்கும் குறநிரலமொனத (script), அத தமொனமொய் சசெயலபடும் வெழியில
சசமமொழியில சகமொண்டுளள சீரமொய் உதவிடும் தப்புவிக்கும் விடசெகளமொனடவெ (escape sequence),
நிரலிலிரந்த தமொனமொய் விலகி ஓடித் தீர்டவெத் பதடி அடடைந்திடை உதவி சசெய்திடும். பின்வெரம்
அட்டைவெடணயமொனத எந்சதந்த விடசெகளுக்கு என்சனன்ன சபமொரள என்படத அறியத்தரகின்றத.
தப்பிடும் விடசெகள விளக்கம்
\n means newline
\r means return
\t means tab
\v means vertical tab
\b means backspace
\a means alert (beep or flash)
\0xx translates to the octal ASCII equivalent of 0nn, where nn is a string of digits
நிரல 118
#!/bin/bash
#niral118.sh
# escaped.sh: escaped characters
#############################################################
### First, let's show some basic escaped-character usage. ###
#############################################################
# Escaping a newline.
# ------------------
echo ""
echo "This will print
as two lines."
# This will print
# as two lines.
# =================================================================== #
# Version 2 of Bash introduced the $'\nnn' string expansion construct.
# =================================================================== #
echo
echo
echo
escape=$'\033' # 033 is octal for escape.
echo "\"escape\" echoes as $escape"
# no visible output.
echo
exit 0
நிரல விளக்கம்:
இந்த நிரலமொனத, சகமொடுக்கப்பட்டுளள ஒவ்சவெமொர தப்பிடும் விடசெகடளயும் விளக்குவெதமொக
அடமந்தளளத. இந்நிரல சவெளிப்படடையமொன தன் விளக்கமளிப்பதமொக அடமக்கப்பட்டுளளத.
நிரல 119:
#!/bin/bash
# niral119.sh
# Requires version 4.2+ of Bash.
key="no value yet"
while true; do
clear
echo "Bash Extra Keys Demo. Keys to try:"
echo
echo "* Insert, Delete, Home, End, Page_Up and Page_Down"
echo "* The four arrow keys"
echo "* Tab, enter, escape, and space key"
case "$key" in
$'\x1b\x5b\x32\x7e') # Insert
echo Insert Key
;;
$'\x1b\x5b\x33\x7e') # Delete
echo Delete Key
;;
$'\x1b\x5b\x31\x7e') # Home_key_num_7
echo Home Key
;;
$'\x1b\x5b\x34\x7e') # End_key_num_1
echo End Key
;;
$'\x1b\x5b\x35\x7e') # Page_Up
echo Page_Up
;;
$'\x1b\x5b\x36\x7e') # Page_Down
echo Page_Down
;;
$'\x1b\x5b\x41') # Up_arrow
echo Up arrow
done
exit $?
நிரல விளக்கம்:
இந்த நிரலமொனத பயனர் சகமொடுத்திடும் உளளிடு விடசெகள என்சனன்ன என்படத எடுத்தக் கமொட்டுவெதமொக
அடமந்தளளத.
கரலச்சசெமொற்கள:
குறநிரல – script
சீரத விடசெயில – escape sequence
தப்பிடும் விடசெ – escape sequence
தடணசசெய் – assist
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
குறிப்பிட்டை கட்டைடளகடளக் சகமொண்டு குறிப்பிட்டை சசெயலகளமொனடவெ சசெய்த முடித்த பிறகு, இன்னும்
பவெற ஏபதனும் கட்டைடளகள இரந்தமொல, அவெற்டற இயக்கமொமல நிரலிலிரந்த சவெளிபயற
வெழிக்கட்டைடளயமொனத உதவுகிறத.
நிரல 120
#!/bin/bash
#niral120.sh
echo hello
echo $? # Exit status 0 returned because command executed successfully.
echo
! true
echo "exit status of \"! true\" = $?" # 1
# Note that the "!" needs a space between it and the command.
# !true leads to a "command not found" error
#
# The '!' operator prefixing a command invokes the Bash history mechanism.
true
!true
# No error this time, but no negation either.
# It just repeats the previous command (true).
# =========================================================== #
# Preceding a _pipe_ with ! inverts the exit status returned.
ls | bogus_command # bash: bogus_command: command not found
echo $? # 127
கரலச்சசெமொற்கள:
வெரிகள - commands
தடடையற – without interruption
கட்டைடள மிகுந்தி ரப்பினும் – more commands need to run
வெழிக்கட்டைடள – exit command
(கற்பபமொம்)
நிரற்பமொவிளக்கம்:
பின்வெரம் குறநிரலகளமொனடவெ ஏற்கனபவெ சபமொறியில உளள பலபவெற முன்னிரப்பு கட்டைடளகடளக்
சகமொண்டு என்சனன்ன சசெய்யலலமொம் என்படத எடுத்தக்கமொட்டி விளக்குகின்றன.
நிரல 122
#!/bin/bash
#niral122.sh
#Internal Commands and Builtins
#A script that spawns multiple instances of itself
# spawn.sh
sleep 1 # Wait.
sh $0 # Play it again, Prasanna.
# Note:
# ----
# Be careful not to run this script too long.
# It will eventually eat up too many system resources.
நிரல விளக்கம்:
குறித்த நிரலமொனத, அடனத்த நிகழ் பநெர சசெயலகளின் எண்கடள எடுத்தக் சகமொண்டு அடதபய திரம்பத்
திரம்பச் சசெய்யும் வெண்ணம் அடமந்தளளத. Ctrl+c விடசெகடள அழத்தி இடத ஒர முடிவுக்குக்
சகமொண்டு வெரலமொம். இடதச் சசெய்த பமொர்த்த சவெளியீடு அறிக.
நிரல 123:
#!/bin/bash
# niral123.sh
# Embedding a linefeed?
echo "Why doesn't this string \n split on two lines?"
# Doesn't split.
echo
echo "This string splits
on two lines."
# No, the "$" is not needed.
echo
echo "---------------"
echo
echo
echo
echo "---------------"
echo
echo
# However, the following doesn't work as expected.
# Why not? Hint: Assignment to a variable.
string1=$"Yet another line of text containing
a linefeed (maybe)."
echo $string1
# Yet another line of text containing a linefeed (maybe).
# ^
# Linefeed becomes a space.
நிரல விளக்கம்:
இந்த நிரலமொனத ஒர உடரயிடனக் கிடைத்த அலலத உட்சபமொதியப் பயன்படுகிறத. இத எவ்வெமொற ஒர
வெரியிலிரந்த மற்சறமொர வெரிக்கு குறிப்பிட்டை உடரயிடன மமொற்றகிறத என்படதயும் எளிதில
விளக்குகிறத.
நிரல 124:
#!/bin/bash
#niral124.sh
# printf demo
Message1="Greetings,"
Message2="Earthling."
echo
echo
# ==========================================#
# Simulation of C function, sprintf().
# Loading a variable with a formatted string.
echo
exit 0
Formatting error messages is a useful application of printf
E_BADDIR=85
var=nonexistent_directory
error()
{
printf "$@" >&2
# Formats positional params passed, and sends them to stderr.
கரலச்சசெமொற்கள:
முன்னிர - default
ஏதகிறத - கமொரணமமொகிறத - reason of
நிரலகள - scripts
சவெளியிடு - output
உட்சபமொதிய - embedded
உடர - text
உளளமொர் - built-in
தப்பிடும் விடசெகள - escape sequences
(கற்பபமொம்)
நிரற்பமொ விளக்கம்:
கணினிச் பசெமொதடனகடள எளிடமயமொன வெண்ணம் கணினியில சசெய்திடை இரட்டடை
அடடைப்புக்குறியமொனத ஏரணப்பிடழயற பயன்படுத்திடைல பவெண்டும்.
நிரல 124:
#!/bin/bash
# arith-tests.sh
# Arithmetic tests.
(( 0 ))
echo "Exit status of \"(( 0 ))\" is $?." #1
(( 1 ))
echo "Exit status of \"(( 1 ))\" is $?." #0
(( 5 > 4 )) # true
echo "Exit status of \"(( 5 > 4 ))\" is $?." #0
(( 5 > 9 )) # false
echo "Exit status of \"(( 5 > 9 ))\" is $?." #1
(( 5 == 5 )) # true
echo "Exit status of \"(( 5 == 5 ))\" is $?." # 0
(( 5 - 5 )) #0
echo "Exit status of \"(( 5 - 5 ))\" is $?." #1
(( 5 / 4 )) # Division o.k.
echo "Exit status of \"(( 5 / 4 ))\" is $?." #0
# ======================================= #
var1=5
var2=4
exit 0
நிரல விளக்கம்:
பமற்கூறிய நிரலில, இரண்டு மமொறிகடள சவெவ்பவெற விதமமொக ஒப்பீடு சசெய்வெத என்படதப் பற்றி
விளக்கப்பட்டுளளத. ஒப்பீடு என்பத, இரண்டு எண்கள கீழ்வெரமமொற எந்த வெடகயிலும் இரக்கலமொம்.
1. நிகரமொக இரப்பத (equals)
2. அதிகமமொக இரப்பத (more than)
ஆகியடவெ டகயமொளப்பட்டுளளன.
நிரல 125:
#!/bin/bash
# broken-link.sh
# Written by PNA Prasanna
# Used in ABS Guide with permission.
# A pure shell script to find dead symlinks and output them quoted
#+ so they can be fed to xargs and dealt with :)
#+ eg. sh broken-link.sh /somedir /someotherdir|xargs rm
#
# This, however, is a better method:
#
# find "somedir" -type l -print0|\
# xargs -r0 file|\
# grep "broken symbolic"|
# sed -e 's/^\|: *broken symbolic.*$/"/g'
#
#+ but that wouldn't be pure Bash, now would it.
# Caution: beware the /proc file system and any circular links!
################################################################
linkchk () {
for element in $1/*; do
[ -h "$element" -a ! -e "$element" ] && echo \"$element\"
[ -d "$element" ] && linkchk $element
# Of course, '-h' tests for symbolic link, '-d' for directory.
done
}
# Send each arg that was passed to the script to the linkchk() function
#+ if it is a valid directoy. If not, then print the error message
#+ and usage info.
##################
for directory in $directorys; do
if [ -d $directory ]
then linkchk $directory
else
echo "$directory is not a directory"
echo "Usage: $0 dir1 dir2 ..."
fi
done
exit $?
நிரல விளக்கம்:
இந்த நிரலில எண்கள மட்டும் டகயமொளப்படைமொமல, பகமொப்புகள மற்றம் அடடைவுகள
டகயமொளப்பட்டுளளன. அடவெ செரிவெர ஒன்ற மற்சறமொன்றடைன் பசெர்ந்த ஒப்பிடைப்படும் வெண்ணம்
டகயமொளப்பட்டுளளன.
கரலச்சசெமொற்கள:
கணிதச் பசெமொதடன – arithmetic operations
இரட்டடை அடடைப்புக் குறி – double brackets
ஏரணம் - logic
(கற்பபமொம்)
நெமொன்...
சபங்களூர. பணியமொ. பிரசென்னமொ எம்.எஸ்.ச. எம்.பில.
திண்டுக்கல தூய மரியன்டனப் பளளியில முடித்த, திரச்ச தூய வெளனமொர் கலலூரியில
கணினி அறிவியலில முதகடலப் பட்டைம் படித்த முடித்தளபளன். மதடர கமொமரமொசெர்
பலகடலக்கழகத்தில எம்.பில சதமொடைர்ந்தளபளன். இன்ற சபங்களூரில ஓர் சமன்சபமொரள
நிறவெனத்தில சமன்சபமொரள கட்டுமமொனர் ஆகபவெடல பமொர்த்தக்சகமொண்டிரக்கிபறன்.
விர்ஜின் பிரசென்னமொடவெ 2008 இல திரமணம் முடித்தவென், இன்ற பஹமிலடைன்,
பஹரிங்டைன் ஆகிய இர ஆண் மகவுகளின் தந்டத. பநெரம் கிடடைக்கும் சபமொழசதலலமொம்,
சபமொழதமொக்கமமொக கணினிக்கடதகள, கட்டுடரகள எழதவெத, கணினித் சதமொடைர் எழதவெத
ஆகியவெற்டறச் சசெய்தஇன்புறகிபறன். தமிழ் கம்ப்யூட்டைர் இதழில சவெளியமொன
சசெம்சமமொழியில கற்பபமொம் சஷெல ஸ்கிரிப்ட் என்ற சதமொடைடரத் சதமொகுத்த இந்நூலில
வெழங்கியுளபளன்.
பமொல் சஜெயசீலன் நிர்மல் ஆபரமொக்கிய பிரசென்னமொ என்ற இயற்சபயர் சுருங்கி, பமொ.நி.ஆ. பிரசென்னமொ
என்ற செமொன்றிதழ்களுக்கமொக மமொற்றப்படடது. அதுபவ பமலும் சுருங்கி பணியமொ. பிரசென்னமொ
என்றமொயிற்ற.