Linux BASH skriptiniň dünýäsinde ýüzmek - III bölüm


“Shell Scripting” seriýasynyň öňki indiki makalalary ýokary baha berildi we şonuň üçin bu makalany hiç wagt gutarmaýan okuw prosesini giňeltmek üçin ýazýaryn.

  1. Linux Shell skript ýazuw diliniň esasy maslahatlaryna düşüniň - I bölüm
  2. Shell programmirlemesini öwrenmek üçin Linux täze doglan çagalar üçin 5 sany gabyk skripti - II bölüm

Açar söz, kompýuter dili üçin aýratyn many berýän söz ýa-da nyşan. Aşakdaky nyşanlaryň we sözleriň, sorag berilmedik we buýrugyň birinji sözi bolanda Baş üçin aýratyn manylary bar.

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

Kompýuter dilleriniň köpüsinden tapawutlylykda, baş sözleri açar sözleri üýtgeýän atlar hökmünde ulanmaga mümkinçilik berýär, ýöne bu skriptleri okamagy kynlaşdyryp biler. Ripazgylary düşnükli etmek üçin üýtgeýän atlar üçin açar sözler ulanylmaly däldir.

Buýruk gabykda $(buýruk) görnüşinde ýerine ýetirilýär. Doly buýruk ýoluny goşmaly bolmagyňyz mümkin. meselem, dogry ýerine ýetirmek üçin & # 36 (/ bin/senesi).

“Whereis” buýrugyny ulanyp, belli bir programmanyň ýoluny bilip bilersiňiz. meselem, senesi

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

Bu häzirlikçe ýeterlik. Indi bu teoriýa hakda kän gürleşmeris. Ripazgylara gelmek.

Häzirki iş katalogyny göçüriň

Häzirki iş katalogyndan ýerine ýetirilende skriptiň ahyrynda san bahasyny bermek bilen islendik derejä geçiň.

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

Aboveokardaky kodlary “up.sh” görnüşinde iş stoluňyzda saklaň. Ony ýerine ýetirip bilersiňiz (chmod 755 up.sh). Ylga:

./up.sh 2 (häzirki işleýän katalogy iki derejä geçirer).
./up.sh 4 (häzirki işleýän katalogy dört derejä geçirer).

Içindäki bukjanyň içindäki bukjany öz içine alýan has uly skriptlerde ... dürli ýerlerde kitaphanalar, ikilikler, nyşanlar, ýerine ýetiriliş we ş.m. öz içine alýan, siz bu ýazgyny gaty awtomatiki usulda islenýän ýere geçirmek üçin durmuşa geçirip bilersiňiz.

Bellik: forokardaky skriptdäki aýlaw we bu aýlawlar üçin bahalar dogry bolýança ýerine ýetirilmegini dowam etdirer.

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

 ./up.sh 4 
You are in: / 

Tötänleýin faýl ýa-da bukja dörediň

Gaýtalama mümkinçiligi bolmadyk tötänleýin faýl (bukja) dörediň.

#! /bin/bash

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

Bu ýönekeý skript, ýöne işlemegi beýle bir ýönekeý däl.

  1. echo: Sitatlaryň içinde ýazylanlaryň hemmesini çap edýär.
  2. '$': Gabyk üýtgeýjimi.
  3. '>>': Çykyş sene buýrugynyň çykyşyna ugrukdyrylýar, soň bolsa txt giňeltmesi.

Sene buýrugynyň çykarylyşynyň sene we wagt bilen bir sagat, minut, sekuntdygyny bilýäris. Şeýlelik bilen, faýlyň adyny köpeltmek mümkinçiligi bolmazdan guramaçylykly faýl adynda çykyş edip bilerdik. Ulanyja geljekki salgylanma üçin wagt belgisi bilen döredilen faýla mätäç bolanda gaty peýdaly bolup biler.

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

Iş stolunda döredilen faýly şu günüň senesi we häzirki wagty bilen görüp bilersiňiz.

 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

Aboveokardaky skriptiň has jikme-jik ýerine ýetirilmegi, ýokardaky ýörelgäniň üstünde işleýän we Linux serweriniň tor maglumatlaryny ýygnamakda örän peýdaly aşakda berilýär.

Tor maglumatlary ýygnamak üçin skript

Linux serwerinde tor maglumatlary ýygnaýar. Scriptazgy gaty uly we skriptiň ähli koduny we çykyşyny şu ýere goýmak mümkin däl. Şeýlelik bilen, aşakdaky göçürip almak baglanyşygyny ulanyp, skripti göçürip alyp bilersiňiz.

Bellik: lsb-ýadro paketini we beýleki zerur paketleri we garaşlylygy gurmaly bolmagyňyz mümkin. Gerekli paketleri ýa-da ýum. Elbetde, skripti işletmek üçin kök bolmaly, sebäbi bu ýerde ulanylýan buýruklaryň köpüsi kök hökmünde işlemek üçin düzülendir.

 ./collectnetworkinfo.sh  

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

Aboveokardaky e-poçta salgysyny size iberilmegi üçin skriptiňizde üýtgedip bilersiňiz. Awtomatiki usulda döredilen faýly görüp bolýar.

UPPERCASE-i kiçi harplara öwürmek üçin skript

UPPERCASE-i kiçi harplara öwürýän we talaplary üýtgedip boljak “small.txt” tekst faýlyna ugrukdyrýan skript.

#!/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

Aboveokardaky skript, islendik uzynlykdaky faýlyň ýagdaýyny bir gezek basmak bilen baş harpdan kiçi harplara we zerur bolsa tersine az üýtgedip biler.

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

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

Täze faýl (small.txt) çykyş:

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

Pleönekeý kalkulýator programmasy

#! /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

Şeýle ýönekeý hasaplamalar ýaly güýçli programma döretmegiň nähili aňsatdygyny gördüňizmi? Munuň soňy däl. Dolandyryş nukdaýnazaryndan giň perspektiwany öz içine alýan bu seriýanyň iň bolmanda ýene bir makalasyny taýýarlarys.

Bularyň hemmesi häzirlikçe. Okyjy we iň oňat tankytçy bolmak bilen, bu makalada näçeräk we nämäni halandygyňyzy we geljekki makalada görmek isleýän zadyňyzy aýtmagy ýatdan çykarmaň. Islendik sorag teswirde makullanýar. Şoňa çenli sagdyn, howpsuz we sazlaşykly boluň. Bizi halaň we paýlaşyň we ýaýramaga kömek ediň.