Jadranje skozi svet Linux skriptov BASH - III. Del
Prejšnji naslednji članki serije »Shell Scripting« so bili zelo cenjeni, zato pišem ta članek, da bi podaljšal nikoli končan proces učenja.
- Razumevanje osnovnih nasvetov za skriptni jezik lupine Linux - I. del
- 5 skriptov lupine za začetnike Linuxa, ki se učijo programiranja lupine - II. del
Ključna beseda je beseda ali simbol, ki ima poseben pomen za računalniški jezik. Naslednji simboli in besede imajo Bash poseben pomen, ko so uvrščeni brez navedbe in prva beseda ukaza.
! esac select } case fi then [[ do for until ]] done function while elif if time else in {
V nasprotju z večino računalniških jezikov Bash omogoča uporabo ključnih besed kot imen spremenljivk, čeprav lahko skripte oteži branje. Da bi bili skripti razumljivi, ključnih besed ne bi smeli uporabljati za imena spremenljivk.
Ukaz je v lupini izveden kot $(ukaz). Morda boste morali vključiti celotno pot ukaza. npr. & # 36 (/ bin/date), za pravilno izvedbo.
Pot določenega programa morda poznate z ukazom 'whereis'. npr. kje je datum
whereis date date: /bin/date /usr/share/man/man1/date.1.gz
Za zdaj je dovolj. O teh teorijah zdaj ne bomo veliko govorili. Prihaja do skript.
Premakni trenutni delovni imenik
Premaknite se iz trenutnega delovnega imenika na katero koli raven navzgor, tako da med izvajanjem preprosto navedete številčno vrednost na koncu skripta.
#! /bin/bash LEVEL=$1 for ((i = 1; i <= LEVEL; i++)) do CDIR=../$CDIR done cd $CDIR echo "You are in: "$PWD exec /bin/bash
Zgornje kode shranite kot »up.sh« na namizje. Naj bo izvršljiv (chmod 755 up.sh). Zaženi:
./up.sh 2 (trenutni delovni imenik bo premaknil na dve stopnji navzgor).
./up.sh 4 (bo trenutni delovni imenik premaknil na štiri stopnje navzgor).
V večjih skriptah, ki vsebujejo mapo znotraj mape znotraj…, ki vsebujejo knjižnice, binarne datoteke, ikone, izvedljive datoteke itd. Na različnih lokacijah, lahko kot razvijalec izvedete ta skript, da se zelo samodejno premaknete na želeno mesto.
Opomba: For je zanka v zgornjem skriptu in se bo izvajala še naprej, dokler vrednosti zanke ne bodo resnične.
chmod 755 up ./up.sh 2 You are in: / ./up.sh 4 You are in: /
Ustvarite naključno datoteko ali mapo
Ustvarite naključno datoteko (mapo) brez možnosti podvajanja.
#! /bin/bash echo "Hello $USER"; echo "$(uptime)" >> "$(date)".txt echo "Your File is being saved to $(pwd)"
To je preprost skript, vendar deluje ni tako preprosto.
- ‘echo‘: natisne vse, kar je zapisano znotraj narekovajev.
- ‘$‘: Je spremenljivka lupine.
- ‘>>‘: izhod se preusmeri na izhod ukaza datum, ki mu sledi razširitev txt.
Vemo, da je rezultat ukaza datum datum in čas v uri, minuti, sekundi skupaj z letom. Tako bi lahko dobili izpise za organizirano ime datoteke brez možnosti podvajanja imena datoteke. Lahko bi bilo zelo koristno, če uporabnik potrebuje datoteko, ustvarjeno s časovnim žigom, za nadaljnjo uporabo.
./randomfile.sh Hello server Your File is being saved to /home/server/Desktop
Datoteko, ki je ustvarjena na namizju, si lahko ogledate z današnjim datumom in trenutnim časom.
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
Spodaj je podana podrobnejša izvedba zgornjega skripta, ki deluje po zgornjem principu in je zelo koristen pri zbiranju omrežnih informacij strežnika Linux.
Skripta za zbiranje omrežnih informacij
Zbira informacije o omrežju na strežniku Linux. Skript je prevelik in tukaj ni mogoče objaviti celotne kode in izhoda skripta. Torej, bolje je, da skript prenesete s spodnjo povezavo za prenos in ga preizkusite sami.
Opomba: Morda boste morali namestiti paket lsb-core in druge zahtevane pakete ter odvisnost. Apt ali Yum zahtevane pakete. Očitno je, da za zagon skripta potrebujete root, ker je večina tukaj uporabljenih ukazov konfigurirana za zagon kot root.
./collectnetworkinfo.sh The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop
Zgornji e-poštni naslov lahko spremenite v skriptu, da vam bo poslan po pošti. Ogledate si lahko samodejno ustvarjeno datoteko.
Script to Pretvori UPPERCASE v male črke
Skript, ki pretvori UPPERCASE v male črke in preusmeri izhod v besedilno datoteko "small.txt", ki jo je mogoče po potrebi spremeniti.
#!/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
Ta zgornji skript lahko pretvori primer datoteke katere koli dolžine z enim samim klikom iz velikega v malega črko in obratno, če je potrebno, z malo spremembami.
./convertlowercase.sh Enter File Name : a.txt Initial File: A B C D E F G H I J K ...
Izhod nove datoteke (small.txt):
a b c d e f g h i j k ...
Preprost kalkulator
#! /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
Torej ste videli, kako enostavno je bilo na preprost način ustvariti zmogljiv program, kot so izračuni. To še ni konec. Pripravili bomo vsaj še en članek iz te serije, ki bo s stališča uprave zajemal široko perspektivo.
To je vse za zdaj. Ker ste bralec in najboljši kritik, nam ne pozabite povedati, koliko in kaj ste uživali v tem članku in kaj želite videti v prihodnjem članku. Vsako vprašanje je zelo dobrodošlo v komentarju. Do takrat ostanite zdravi, varni in nastavljeni. Všečkajte in delite nas in nam pomagajte pri širjenju.