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.
- Linux Shell skript ýazuw diliniň esasy maslahatlaryna düşüniň - I bölüm
- 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.
- echo: Sitatlaryň içinde ýazylanlaryň hemmesini çap edýär.
- '$': Gabyk üýtgeýjimi.
- '>>': Ç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ň.