Burāšana caur Linux BASH skriptu pasauli - III daļa
Iepriekšējie nākamie sērijas “Shell Scripting” raksti tika augstu novērtēti, un tāpēc es rakstu šo rakstu, lai paplašinātu nebeidzamo mācību procesu.
- Izprotiet pamata Linux čaulas skriptu valodas padomus - I daļa
- 5 čaulas skripti iesācējiem Linux, lai uzzinātu čaulas programmēšanu - II daļa
Atslēgvārds ir vārds vai simbols, kam ir īpaša nozīme datorvalodā. Šiem simboliem un vārdiem Bash ir īpaša nozīme, kad tie nav citēti, un komandas pirmajam vārdam.
! esac select } case fi then [[ do for until ]] done function while elif if time else in {
Atšķirībā no vairuma datoru valodu, Bash ļauj atslēgvārdus izmantot kā mainīgos nosaukumus, lai gan tas var padarīt skriptus grūti lasāmus. Lai skripti būtu saprotami, mainīgo nosaukumiem nedrīkst izmantot atslēgas vārdus.
Komanda tiek ieviesta čaulā kā $(komanda). Iespējams, jums būs jāiekļauj pilns komandas ceļš. piem., & # 36 (/ bin/date) pareizai izpildei.
Jūs, iespējams, zināt konkrētas programmas ceļu, izmantojot komandu ‘whereis’. piem., kur datums
whereis date date: /bin/date /usr/share/man/man1/date.1.gz
Pagaidām ar to pietiek. Tagad mēs daudz nerunāsim par šo teoriju. Nākam pie skriptiem.
Pārvietot pašreizējo darba direktoriju
Pārejiet no pašreizējā darba direktorija uz jebkuru līmeni uz augšu, izpildot tikai norādot skaitlisko vērtību skripta beigās.
#! /bin/bash LEVEL=$1 for ((i = 1; i <= LEVEL; i++)) do CDIR=../$CDIR done cd $CDIR echo "You are in: "$PWD exec /bin/bash
Darbvirsmā saglabājiet iepriekš minētos kodus kā “up.sh”. Padariet to izpildāmu (chmod 755 up.sh). Palaist:
./up.sh 2 (pārvietos pašreizējo darba direktoriju uz diviem līmeņiem uz augšu).
./up.sh 4 (pārvietos pašreizējo darba direktoriju uz četriem līmeņiem uz augšu).
Lielākos skriptos, kas satur mapi mapes iekšpusē ..., kas satur bibliotēkas, bināros failus, ikonas, izpildāmos failus utt. Dažādās vietās, jūs kā izstrādātājs varat ieviest šo skriptu, lai ļoti automatizēti pārvietotos uz vēlamo vietu.
Piezīme: For ir cilpa iepriekš minētajā skriptā, un tā turpinās izpildīt, līdz cilpas vērtības ir patiesas.
chmod 755 up ./up.sh 2 You are in: / ./up.sh 4 You are in: /
Izveidojiet izlases failu vai mapi
Izveidojiet nejaušu failu (mapi) bez dublēšanās iespējas.
#! /bin/bash echo "Hello $USER"; echo "$(uptime)" >> "$(date)".txt echo "Your File is being saved to $(pwd)"
Šis ir vienkāršs skripts, taču tas nav tik vienkārši.
- ‘atbalss’: izdrukā visu, kas rakstīts pēdiņās.
- ‘$’: ir čaulas mainīgais.
- ‘>>’: izvade tiek novirzīta uz komandas date datumu, kam seko txt paplašinājums.
Mēs zinām, ka komandas datums ir datums un laiks stundās, minūtēs, sekundēs kopā ar gadu. Tādējādi mēs varētu iegūt izvadi no organizēta faila nosaukuma, bez iespējas dubultot faila nosaukumu. Tas varētu būt ļoti noderīgi, ja lietotājam nākotnē ir nepieciešams fails, kas izveidots ar laika zīmogu.
./randomfile.sh Hello server Your File is being saved to /home/server/Desktop
Darbvirsmā izveidoto failu var apskatīt ar šodienas datumu un pašreizējo laiku.
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
Tālāk ir sniegta detalizētāka iepriekš minētā skripta ieviešana, kas darbojas pēc iepriekš minētā principa un ir ļoti noderīga, apkopojot Linux servera tīkla informāciju.
Skripts tīkla informācijas apkopošanai
Apkopo tīkla informāciju Linux serverī. Skripts ir pārāk liels, un šeit nav iespējams ievietot visu skripta kodu un izvadi. Tāpēc labāk ir lejupielādēt skriptu, izmantojot zemāk redzamo lejupielādes saiti, un pats to pārbaudīt.
Piezīme. Iespējams, jums būs jāinstalē lsb-core pakete un citas nepieciešamās pakotnes un atkarība. Apt vai Yum nepieciešamās paketes. Acīmredzot, lai palaistu skriptu, jums ir jābūt root, jo lielākā daļa šeit izmantoto komandu ir konfigurētas palaist kā root.
./collectnetworkinfo.sh The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop
Jūs varat mainīt iepriekš minēto e-pasta adresi savā skriptā, lai to nosūtītu jums pa pastu. Var apskatīt automātiski ģenerēto failu.
Skripts, lai lielos burtus pārveidotu par mazajiem burtiem
Skripts, kas lielo burtu pārveido par mazajiem burtiem un izvadi novirza uz teksta failu “small.txt”, kuru pēc vajadzības var modificēt.
#!/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
Šis iepriekšējais skripts var pārveidot jebkura garuma faila lietu ar vienu klikšķi no lielajiem burtiem uz mazajiem burtiem un otrādi, ja nepieciešams, ar nelielu modifikāciju.
./convertlowercase.sh Enter File Name : a.txt Initial File: A B C D E F G H I J K ...
Jauna faila (small.txt) izeja:
a b c d e f g h i j k ...
Vienkārša kalkulatora programma
#! /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
Vai jūs redzējāt, cik viegli bija izveidot tik vienkāršu aprēķinu programmu kā aprēķinus. Tās nav beigas. Mēs sastādīsim vēl vismaz vienu šīs sērijas rakstu, kas aptver plašu perspektīvu no administrācijas viedokļa.
Tas pagaidām ir viss. Būdams lasītājs un labākais kritiķis, neaizmirstiet pastāstīt, cik daudz un kas jums patika šajā rakstā un ko vēlaties redzēt nākamajā rakstā. Jebkurš jautājums ir ļoti laipni gaidīts komentāros. Līdz tam paliec vesels, drošs un noregulēts. Patīk un dalies ar mums un palīdz mums izplatīties.