Paglawig sa Kalibutan sa Linux BASH Scripting - Bahin III


Ang Nauna nga misunod nga mga artikulo sa 'Shell Scripting'serye gipabilhan pag-ayo ug busa gisulat nako kini nga artikulo aron mapalawig ang wala’y katapusan nga proseso sa pagkat-on.

  1. Sabta ang Basic Linux Shell Scripting Language Tips – Part I
  2. 5 Shell Scripts para sa Linux Newbies nga Makakat-on sa Shell Programming – Part II

Ang keyword usa ka pulong o simbolo nga adunay espesyal nga kahulugan sa usa ka lengguwahe sa kompyuter. Ang mosunod nga mga simbolo ug mga pulong adunay espesyal nga kahulugan sa Bash kung kini wala kinutlo ug ang unang pulong sa usa ka sugo.

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

Dili sama sa kadaghanan sa mga lengguwahe sa kompyuter, gitugotan sa Bash ang mga keyword nga magamit ingon mga variable nga ngalan bisan kung kini makapalisud sa pagbasa sa mga script. Aron mahuptan nga masabtan ang mga script, ang mga yawe nga pulong kinahanglan dili gamiton alang sa mga variable nga ngalan.

Usa ka sugo ang gipatuman sa shell isip $(command). Mahimo nimong ilakip ang tibuuk nga agianan sa pagmando. pananglitan, $ (/bin/date), para sa saktong pagpatuman.

Mahimo nimong mahibal-an ang agianan sa piho nga programa gamit ang 'whereis' nga mando. pananglitan, asa ang petsa

 whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Igo na kana sa pagkakaron. Dili na kami maghisgot bahin sa kini nga teorya karon. Pag-abot sa Scripts.

Ibalhin ang Kasamtangang Direktoryo sa Trabaho

Pagbalhin gikan sa kasamtangan nga direktoryo sa pagtrabaho ngadto sa bisan unsang lebel pinaagi lamang sa paghatag sa numerical value sa katapusan sa script samtang nagpatuman.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

I-save ang mga code sa ibabaw nga up.sh, sa imong desktop. Himoa kini nga ma-executable (chmod 755 up.sh). Dagan:

./up.sh 2 (mobalhin sa kasamtangan nga direktoryo sa pagtrabaho ngadto sa duha ka lebel pataas).
./up.sh 4 (mobalhin sa kasamtangan nga direktoryo sa pagtrabaho ngadto sa upat ka lebel pataas).

Sa mas dagkong mga script nga adunay sulod nga folder sa sulod sa folder sa sulod… nga adunay mga librarya, binary, icon, executable, ug uban pa sa lain-laing lokasyon, Ikaw isip usa ka developer makahimo sa pagpatuman niini nga script aron mobalhin sa gusto nga lokasyon sa usa ka automated nga paagi.

Mubo nga sulat: Kay usa ka loop sa ibabaw nga script ug kini magpadayon sa pagpatuman hangtud nga ang mga bili tinuod alang sa loop.

 chmod 755 up
 ./up.sh 2
You are in: /

 ./up.sh 4 
You are in: / 

Paghimo og Random File o Folder

Paghimo ug random file (folder) nga walay kahigayonan sa pagdoble.

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

Kini usa ka Yano nga script apan kini nagtrabaho dili kaayo yano.

  1. ‘echo‘ : Nag-imprenta sa tanang gisulat sulod sa mga kinutlo.
  2. ‘$‘ : Usa ka shell variable.
  3. ‘>>‘ : Ang output gi-redirect ngadto sa output sa date command nga gisundan sa txt extension.

Nahibal-an namon nga ang output sa sugo sa petsa mao ang petsa, ug oras sa oras, minuto, segundo kauban ang tuig. Busa makakuha kita og output sa usa ka organisado nga ngalan sa file nga walay kahigayonan sa pagdoble sa filename. Mahimong mapuslanon kaayo kung gikinahanglan sa user ang file nga gihimo gamit ang time stamp alang sa umaabot nga pakisayran.

 ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Mahimo nimong tan-awon ang file nga gihimo sa desktop nga adunay Petsa sa Karon ug karon nga oras.

 nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 
13:51:52 up  3:54,  1 user,  load average: 0.09, 0.12, 0.08

Ang mas detalyado nga pagpatuman sa script sa ibabaw gihatag sa ubos, nga naglihok sa ibabaw nga prinsipyo ug mapuslanon kaayo sa pagtigom sa impormasyon sa network sa usa ka server sa Linux.

Script sa Pagkolekta sa Impormasyon sa Network

Nagtigum sa impormasyon sa network sa usa ka server sa Linux. Ang script dako kaayo ug dili posible nga i-post ang tibuok code ug output sa script dinhi. Busa, mas maayo nga ma-download nimo ang script gamit ang link sa pag-download sa ubos ug sulayan kini sa imong kaugalingon.

Mubo nga sulat: Tingali kinahanglan nimo nga i-install ang lsb-core nga pakete ug uban pang gikinahanglan nga mga pakete ug pagsalig. Apt o Yum ang gikinahanglan nga mga pakete. Dayag nga kinahanglan ka nga mahimong gamut aron makadagan ang script tungod kay kadaghanan sa mga mando nga gigamit dinhi gi-configure nga ipadagan ingon gamut.

 ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop

Mahimo nimong usbon ang email address sa ibabaw sa imong script aron ipadala kini kanimo. Ang Awtomatikong nahimo nga file mahimong tan-awon.

Ang Script aron I-convert ang UPPERCASE ngadto sa lowercase

Usa ka script nga nag-convert sa UPPERCASE ngadto sa lowercase ug nag-redirect sa output ngadto sa usa ka text file nga small.txt nga mahimong usbon kung gikinahanglan.

#!/bin/bash 

echo -n "Enter File Name : " 
read fileName 

if [ ! -f $fileName ]; then 
  echo "Filename $fileName does not exists" 
  exit 1 
fi 

tr '[A-Z]' '[a-z]' < $fileName >> small.txt

Kini nga script sa ibabaw makahimo sa pag-convert sa kaso sa usa ka file sa bisan unsang gitas-on sa usa ka pag-klik gikan sa uppercase ngadto sa lowercase ug vice-versa kung gikinahanglan, nga adunay gamay nga pagbag-o.

 ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

Bag-ong File (small.txt) nga output:

a
b
c
d
e
f
g
h
i
j
k
...

Yano nga Calculator Program

#! /bin/bash 
clear 
sum=0 
i="y" 

echo " Enter one no." 
read n1 
echo "Enter second no." 
read n2 
while [ $i = "y" ] 
do 
echo "1.Addition" 
echo "2.Subtraction" 
echo "3.Multiplication" 
echo "4.Division" 
echo "Enter your choice" 
read ch 
case $ch in 
    1)sum=`expr $n1 + $n2` 
     echo "Sum ="$sum;; 
        2)sum=`expr $n1 - $n2` 
     echo "Sub = "$sum;; 
    3)sum=`expr $n1 \* $n2` 
     echo "Mul = "$sum;; 
    4)sum=`expr $n1 / $n2` 
     echo "Div = "$sum;; 
    *)echo "Invalid choice";; 
esac 
echo "Do u want to continue (y/n)) ?" 
read i 
if [ $i != "y" ] 
then 
    exit 
fi 
done
 ./simplecalc.sh 

Enter one no. 
12 
Enter second no. 
14 
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
1 
Sum =26 
Do u want to continue (y/n)) ? 
y
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
3 
mul = 14812
Do u want to continue (y/n)) ? 
n

Mao nga nakita ba nimo kung unsa kadali ang paghimo usa ka kusgan nga programa sama sa mga kalkulasyon sa yano nga paagi. Dili kini ang katapusan. Maghimo kami og labing menos usa pa ka artikulo niini nga serye, nga naglangkob sa halapad nga panglantaw gikan sa panglantaw sa administrasyon.

Kana lang sa pagkakaron. Ingon nga magbabasa ug labing maayo nga kritiko ayaw kalimot sa pagsulti kanamo kung unsa ka daghan ug kung unsa ang imong nalingaw sa kini nga artikulo ug kung unsa ang gusto nimo nga makita sa umaabot nga artikulo. Ang bisan unsang pangutana gidawat kaayo sa komento. Hangtud unya magpabilin nga himsog, luwas ug tune. Like ug Share mi ug tabangi mi sa pagpakatap.