Bash Scripting Tutorial za početnike

Bash Scripting Tutorial



Zadani naredbeni jezik Linuxa je Bash skripta. Moramo svakodnevno izvršavati mnoge naredbe u Linuxu u mnoge svrhe. Ti se svakodnevni zadaci mogu automatizirati pomoću bash skripte. Svaki korisnik može vrlo lako i brzo naučiti ovaj skriptni jezik. Ako ste novi u bash programiranju, ovaj je vodič za vas.

Sadržaj:

  1. Komentari
  2. naredba echo
  3. Varijable
  4. Uvjetna izjava
  5. Petlje
  6. Funkcije
  7. Pozivanje programa u skripti
  8. Izrada jelovnika
  9. Obrada naredbenog retka
  10. Aritmetika
  11. Manipulacija nizovima
  12. Vraćanje povratnih kodova iz skripte i hvatanje u drugu skriptu
  13. Čitanje i pisanje u datoteke
  14. Cijevi

Komentari

Dodavanje komentara uz kôd bitan je dio svakog programskog jezika. Komentari se ne analiziraju sa skriptom u vrijeme izvođenja. Čitatelj može ispravno razumjeti bilo koji kôd ako je kôd dobro komentiran. Komentar možete dodati na više načina u bash skripti. U ovom dijelu prikazano je kako možete dodati komentare s jednim i više redaka u bash skriptu. Napravite bash datoteku sa sljedećom skriptom kako biste znali koristiti bash komentar. Ovdje se simbol '#' koristi za dodavanje komentara u jednom retku, a jednostruki navodnik (') s': 'koristi se za dodavanje komentara u više redaka.







bash_comment.sh



#!/bin/bash
#Uzmi broj kao unos
izbaciti 'Unesite broj'
čitatido
:'
Provjerite je li ulazni broj
manje od 10 ili veće od 10 ili jednako 10
'

ako [[ $ a -lt 10 ]]
zatim
izbaciti 'Broj je manji od 10'
elif [[ $ a -gt 10 ]]
zatim
izbaciti 'Broj je veći od 10'
drugo
izbaciti 'Broj je jednak 10'
biti

Izlaz:



Pokrenite skriptu.





$bashbash_comment.sh

Ovdje se skripta izvodi tri puta s ulaznom vrijednošću 3, 10 i 90. Pojavit će se sljedeći izlaz.



Ako želite znati više o bash komentiranju, možete provjeriti ovaj vodič .

Idi na vrh

naredba echo

Naredba `echo` koristi se u bashu za ispis izlaznih podataka na terminalu. Različite opcije mogu se koristiti s naredbom echo u bashu za ispis rezultata na različite načine. Napravite bash datoteku sa sljedećom skriptom kako biste znali dvije jednostavne upotrebe naredbe `echo`. Ovdje će prva naredba `echo` ispisati jednostavne tekstualne podatke s novim retkom, a druga naredba echo ispisat će jednostavan tekst bez novog retka.

echo_test.sh

#!/bin/bash
#Ispišite prvi tekst
izbaciti 'Ispis teksta novim retkom'
#Ispišite drugi tekst
izbaciti -n 'Ispis teksta bez novog retka'

Izlaz:

Pokrenite skriptu.

$bashecho_test.sh

Sljedeći izlaz pojavit će se nakon izvršavanja gornje naredbe.

Postoje mnoge druge upotrebe naredbe `echo` u bashu. U ovom vodiču možete saznati više o naredbi `echo`.

Idi na vrh

Varijable

Deklaracija varijable neophodan je dio svakog programskog jezika. Bash varijable se mogu deklarirati na različite načine. Kad je vrijednost dodijeljena varijabli, tada se ne koristi simbol na početku varijable. Simbol ‘$’ koristi se s imenom varijable u vrijeme čitanja vrijednosti varijable. Varijabla se može koristiti s terminala ili se može koristiti u bilo kojoj bash skripti.

Sljedeće naredbe deklarirat će niz varijablu imenom mystr s određenom vrijednošću i sljedećim ispisom vrijednosti varijable u terminalu.

$mystr='Volim bash programiranje'
$izbaciti $ mystr

Izlaz:

Napravite bash datoteku sa sljedećom skriptom. Ovdje su deklarirane dvije varijable. Ovi su $ a i b . Ako je ulazna vrijednost koja je pohranjena u $ a jednako je b zatim poruka, Brojevi su jednaki bit će ispisano na drugi način Brojevi nisu jednaki bit će tiskana.

var.sh

#!/bin/bash
izbaciti 'Unesite broj'
čitatido
b=100
ako [[ $ a -ekv b ]]
zatim
izbaciti 'Brojevi su jednaki'
drugo
izbaciti 'Brojevi nisu jednaki'
biti

Izlaz:

Pokrenite skriptu.

$bashvar.sh

Gornja naredba izvršava se dva puta s vrijednostima 56 i 100. Pojavit će se sljedeći izlaz.

Ako želite saznati više o bash varijablama, možete provjeriti ovaj vodič .

Idi na vrh

Uvjetna izjava

Kao i drugi programski jezik, možete koristiti uvjetni izraz u bashu. ' Ako-onda-drugo 'I' slučaj ’Navodi se uglavnom koriste za implementaciju izraza uvjeta u bilo kojem programskom jeziku. Korištenje uvjetne naredbe pomoću 'ako' izjava prikazana je u ovom odjeljku ovog vodiča. Napravite bash datoteku sa sljedećom skriptom u kojoj se koristi uvjetna naredba. Ovdje će se dvije vrijednosti uzeti od korisnika kao unos i pohraniti u varijable, $ kod , i $ age . 'If' se koristi za provjeru vrijednosti $ age je veći ili jednak 18 i vrijednost $ kod je 1100 . Ako su oba uvjeta istinita, poruka, Imate pravo pogledati film bit će ispisano na drugi način Nemate pravo pogledati film bit će tiskana.

kond.sh

#!/bin/bash

izbaciti 'Unesite svoju šifru'
čitatikodirati
izbaciti 'Unesite svoje godine'
čitatidob

ako [[ $ age -dati 18 && $ kod -ekv '1100' ]]
zatim
izbaciti 'Imate pravo pogledati film'
drugo
izbaciti 'Nemate pravo pogledati film'
biti

Izlaz:

Pokrenite skriptu.

$bashkond.sh

Sljedeći izlaz će se pojaviti nakon uzimanja različitih ulaznih vrijednosti. 1100 je dat kao kôd, a 5 kao dob za prvo izvršenje i ako uvjet za ove vrijednosti vraća false. 1100 je dat kao kôd, a 45 kao dob za drugu izvedbu koja vraća true za if uvjet.

Ako želite saznati više o bash uvjetnoj naredbi, možete provjeriti ovaj vodič.

Idi na vrh

Petlje

Kad se neki dijelovi skripte moraju izvesti više puta, petlja se koristi za obavljanje zadatka. Bash podržava tri vrste deklaracije petlji poput drugih jezika. To su petlje za, dok i dok. Na temelju programskih zahtjeva, u skripti se koristi određena petlja. Upotreba ove tri vrste petlji prikazana je u ovom odjeljku pomoću jednostavnih primjera.

Korištenje for petlje

Napravite bash datoteku sa sljedećom skriptom gdje ` za ` petlja se koristi za ponavljanje. `za` loop se uglavnom koristi za ponavljanje popisa podataka ili niza. Ovdje se koristi popis naziva radnih dana, a svaki naziv radnog dana ponavlja se pomoću petlje for. `ako` izraz se koristi za ispis određene poruke na temelju naziva radnog dana.

za.sh

#Pročitajte naziv radnog dana u svakoj iteraciji petlje
zadanuponedjeljak utorak srijeda četvrtak petak Subota nedjelja
čini

#Provjerite naziv radnog dana je ponedjeljak ili četvrtak
ako [[ $ dan=='Ponedjeljak' || $ dan=='Četvrtak' ]]
zatim
izbaciti 'Sastanak je nastavljen$ danu 9:30 sati '

#Provjerite naziv radnog dana je utorak ili srijeda ili petak
elif [[ $ dan=='Utorak' || $ dan=='Srijeda' || $ dan=='Petak' ]]
zatim
izbaciti 'Trening na$ danu 11:00 sati '
drugo

#Ispišite ‘Odmor’ za ostale dane
izbaciti '$ danje praznik '
biti
učinjeno

Izlaz:

Pokrenite skriptu.

$bashza.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Ako želite znati više o upotrebi bash for loop -a, možete provjeriti ovaj vodič.

Korištenje while petlje

Napravite bash datoteku sa sljedećom skriptom gdje ` dok ` petlja se koristi za ponavljanje. Ova će skripta ispisati one brojeve od 1 do 20 koji su parni i djeljivi sa 5. Ovdje, $ brojač Varijabla se koristi za kontrolu iteracije petlje, a vrijednost ove varijable povećava se za 1 u svakoj iteraciji. Kada `ako` uvjet će vratiti true tada će ispisati vrijednost $ brojač .

#!/bin/bash

#Odštampajte poruku
izbaciti 'Ispišite brojeve koji su parni i djeljivi sa 5'

#Inicijalizirajte brojač
brojač=1

#Ponovite petlju sve dok vrijednost brojača $ ne bude manja ili jednaka 20
dok [ $ brojač - dvadeset ]
čini

#Provjerite je li brojač $ djeljiv sa 2 i 5
ako [[ $ brojač%2-ekv 0 && $ brojač%5-ekv 0 ]]
zatim
#Ispis brojača $ bez novog retka
izbaciti '$ brojač'
biti

#Povećaj brojač $ za 1
((brojač ++))
učinjeno
izbaciti 'Gotovo'

Izlaz:

$bashdok.š

Postoje samo brojevi unutar 1-20 koji su parni i djeljivi sa 5. Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Ako želite znati više o upotrebi bash ` dok` loop onda možete provjeriti ovaj vodič .

Korištenje while petlje

Napravite bash datoteku sa sljedećom skriptom gdje ` do` petlja se koristi za ponavljanje. Ova skripta ispisuje sve neparne brojeve od 0 do 20. $ n Varijabla se koristi u ovoj skripti za ponavljanje petlje.

do.š

#!/bin/bash

#Inicijaliziraj varijablu, n
n=dvadeset

#Ponavljajte petlju sve dok vrijednost $ n ne bude veća od 0
do [ $ n -lt 0 ]
čini

#Provjerite je li vrijednost n neparna
ako [[ $ n%2-gt 0 ]]
zatim
izbaciti $ n
biti

#Povećajte vrijednost n za 1
((n=$ n-1))
učinjeno

Izlaz:

Pokrenite skriptu.

$bashdo.š

Skripta će ispisati sve parne brojeve od 20 do 1. Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Idi na vrh

Funkcije

Kada se blok koda mora izvršiti više puta u skripti, tada se funkcija koristi za obavljanje zadatka. Morat ćete pozvati funkciju imenom samo ako se skripta definirana u funkciji mora izvršiti više puta, umjesto da više puta dodaje istu skriptu. Početna i završna prva zagrada koristi se s imenom funkcije za deklaraciju funkcije u bash skripti. Funkcija se može pozvati samo imenom funkcije u bash. Bash ne podržava argument funkcije kao drugi standardni programski jezik. No vrijednost se može prenijeti u funkciju bash na drugačiji način prikazan u ovom odjeljku. Vrijednost se može vratiti iz funkcije s naredbom return ili bez upotrebe naredbe return.

Napravite bash datoteku sa sljedećom skriptom kako biste znali kako se funkcije mogu deklarirati i pozvati u bash skripti. U skripti su deklarirane tri funkcije. Prva funkcija je deklarirana za ispis jednostavne poruke, Bash programiranje za početnike . Druga funkcija je deklarirana da dodijeli vrijednost niza u varijabli, $ return_str koji će ispisati, Naučite bash programiranje s LinuxHintom nakon pozivanja funkcije. Treća funkcija je deklarirana tako da čita vrijednost argumenta kao polumjer kruga koji će biti naveden u vrijeme pozivanja funkcije. Ovdje, lokalno koristi se za čitanje vrijednosti argumenta. Ova funkcija će izračunati površinu kruga na temelju vrijednosti radijusa koristeći formulu, πr2 i ispišite izračunatu vrijednost površine.

func.sh

#!/bin/bash

#Oglasi jednostavnu funkciju
funkcijaispis_poruka()
{
izbaciti 'Bash programiranje za početnike'
}

#Deklarirajte funkciju za vraćanje vrijednosti niza
funkcijaret_strdata()
{
#Inicijalizirajte varijablu s vrijednošću niza
return_str='Naučite bash programiranje s LinuxHintom'
}

#Deklarirajte funkciju za čitanje vrijednosti argumenta
funkcijaizračunaj_područje()

#Pročitajte proslijeđenu vrijednost argumenta
lokalno radius=1 USD
području= $(izbaciti $ radijus*$ radijus*3.14

#Pozovite funkciju za ispis jednostavne poruke
ispis_poruka

#Pozovite funkciju koja će dodijeliti vrijednost niza u varijabli
ret_strdata

#Ispišite vrijednost varijable
izbaciti $ return_str

#Pročitajte vrijednost radijusa
izbaciti 'Unesite vrijednost radijusa'
čitatiraditi

#Pozovite funkciju s vrijednošću radijusa
izračunaj_područje$ rad

Izlaz:

Pokrenite skriptu.

$bashfunc.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte. Prva dva retka ispisat će se pozivanjem funkcija, ispis_poruka () i ret_strdata () . Posljednji redak ispisat će se pozivanjem funkcije, izračunaj_područje () s uzetom vrijednošću radijusa ulaza.

Ako želite znati o vraćanju niza iz funkcije bash, možete ovaj tutorijal .

Idi na vrh

Pozivanje programa u skripti

Možete koristiti mnoge vrste naredbi za pozivanje drugih programa u bilo kojoj bash skripti, npr izvor, bash, eval, exec itd. Pretpostavimo tri bash datoteke, add.sh , oduzeti.sh, množiti.sh i dijeljenje.sh stvorena za izvođenje zbrajanja, oduzimanja, množenja i dijeljenja. Ovdje, oduzeti.sh i podjela.š čitati argumente naredbenog retka. Scenarij sve ove četiri datoteke dan je u nastavku.

add.sh

#!/bin/bash
do=60
b=40
((proizlaziti=$ a+b))
izbaciti 'Dodatak$ a+b=$ rezultat'

subract.sh

#!/bin/bash
do=1 USD
b=2 USD
((proizlaziti=$ a-b))
izbaciti 'Oduzimanje od$ a-b=$ rezultat'

umnožiti.š

#!/bin/bash
((proizlaziti=1 USD*2 USD))
izbaciti 'Množenje $ 1 i $ 2 je$ rezultat'

podijeli.š

#!/bin/bash
do=1 USD
b=2
((proizlaziti=$ a/b))
izbaciti 'Podjela na$ apobje$ rezultat'

Napravite bash datoteku pod nazivom, callpro.sh sa sljedećom skriptom za pozivanje spomenutih bash datoteka pomoću naredbi source, bash, eval i exec. Prije pokretanja sljedeće skripte morate postaviti dopuštenje za izvođenje za gore navedene četiri datoteke. Za pozivanje se koristi naredba `source` add.sh datoteka. Naredba `bash` koristi se za izvršavanje datoteke subtract.sh. Naredba `eval` koristi se za izvršavanje datoteke multiply.sh. Dvije ulazne vrijednosti šalju se kao argumenti naredbenog retka za naredbu `eval`. Posljednja naredba je naredba exec koja radi samo s apsolutnim putem. Za to je u skripti naveden cijeli naziv datoteke divide.sh.

callpro.sh

#!/bin/bash
skripta1='add.sh'
skripta2='oduzmi.sh'
skripta3='multiply.sh'
skripta4='/home/fahmida/code/divide.sh'

izvor '$ script1'

bash $ script2 pedeset dvadeset

izbaciti 'Unesite vrijednost a'
čitatido
izbaciti 'Unesite vrijednost b'
čitatib
eval bash $ script3 $ a b
exec $ script4 30

Izlaz:

Pokrenite skriptu.

$bashcallpro.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Idi na vrh

Izrada jelovnika

U bashu postoji korisna naredba za stvaranje jednostavnog izbornika koji se naziva `odaberi` naredba. Pomoću ove naredbe mogu se stvoriti različite vrste izbornika. Određeni popis podataka koristi se za stvaranje izbornika ovom naredbom. Napravite bash datoteku sa sljedećim kodom kako biste vidjeli uporabu `odaberi` naredba za izradu izbornika. U ovom primjeru popis od pet stavki bit će ispisan kao izbornik i zatražiti od korisnika da odabere bilo koji jezik s popisa. Odabrana vrijednost bit će spremljena u varijablu, $ jezik koji se kasnije ispisuje spajanjem s drugim nizom. Skripta će neprestano tražiti odabir jezika dok korisnik ne pritisne 6 za prekid skripte.

jelovnik.sh

#!/bin/bash

#Print poruka za korisnika
izbaciti 'Odaberite svoj omiljeni jezik'

# Definirajte popis stavki izbornika
OdaberiJezikuC# Java PHP Python Bash izlaz
čini
#Ispišite odabranu vrijednost
ako [[ $ jezik=='Izlaz' ]]
zatim
Izlaz 0
drugo
izbaciti 'Odabrani jezik je$ jezik'
biti
učinjeno

Izlaz:

Pokrenite skriptu.

$bashjelovnik.sh

Prema sljedećem ispisu, korisnik je prvi put pritisnuo 3 koji je ispisao PHP, a drugi put pritisnuo 6 koji je završio sa skriptom.

Ako želite saznati više o izradi bash izbornika s `select`, možete posjetiti ovaj vodič.

Idi na vrh

Obrada naredbenog retka

Ponekad moramo navesti ulazne vrijednosti prilikom izvršavanja skripte iz naredbenog retka. Ovaj se zadatak može obaviti na dva načina u bash -u. Jedan način je upotrebom varijabli argumenta, a drugi način upotrebom funkcije getopts. Očitavanje ulaznih podataka naredbenog retka s terminala pomoću varijable argumenta prikazano je u ovom odjeljku.

Izradite bash datoteku sa sljedećom skriptom da biste vidjeli korištenje čitanja vrijednosti argumenta naredbenog retka. Ova će skripta čitati tri argumenta naredbenog retka koji će biti pohranjeni u varijablama, $ operand1, $ operand2 i $ operator. Za pravilno izvršavanje skripte prva i treća vrijednost argumenta moraju biti broj, a druga vrijednost argumenta mora biti bilo koji od četiri aritmetička operatora (‘+’, ‘-’, ‘/’, ‘x’). ako naredba će provjeriti vrijednost operatora $ i izvršiti operaciju na temelju operatora i ispisati vrijednost.

cl1.sh

#!/bin/bash

#Ispišite varijable argumenta
izbaciti 'Vrijednosti argumenata su: $ 1 $ 2 $ 3'

# Pohranite vrijednosti argumenata
operand1=1 USD
operand2=3 USD
operater=2 USD

#Provjerite vrijednost drugog argumenta naredbe za izvršavanje aritmetičke operacije
ako [[ $ operator=='+' ]]
zatim
((proizlaziti=$ operand1+$ operand2))
elif [[ $ operator=='-' ]]
zatim
((proizlaziti=$ operand1-$ operand2))
elif [[ $ operator=='x' ]]
zatim
((proizlaziti=$ operand1*$ operand2))
elif [[ $ operator=='/' ]]
zatim

((proizlaziti=$ operand1/$ operand2))
biti

# ispišite rezultat
izbaciti -I 'Rezultat je =$ rezultat'

Izlaz:

Pokrenite skriptu.

$bashcl1.sh

Skripta se izvodi četiri puta za četiri vrste aritmetičkih operatora. Sljedeći izlaz pojavit će se za vrijednosti argumenata, 6 + 3, 6 - 3, 6 x 3 i 6/3 .

Vrijednosti argumenata mogu se proslijediti s parom ime-vrijednost u bash-u. Napravite bash datoteku sa sljedećom skriptom kako biste pokazali kako čitati vrijednosti argumenata s imenom. Skripta će čitati dvije varijable argumenta. Vrijednosti argumenta s imenom ispisane su u prvom izrazu skripte. Zatim se for petlja koristi za ponavljanje niza koji sadrži vrijednosti argumenata naredbenog retka. Svaki element niza odijeljen je u par ključ-vrijednost pomoću naredbe `cut`. Zatim se iskaz slučaja koristi za ispis određene poruke na temelju vrijednosti ključa.

cl2.sh

. #! /am/bash

#Ispišite varijable argumenta
izbaciti 'Vrijednosti argumenata su: $ 1 $ 2'

#Pročitajte svaki argument zasebno pomoću for petlje
zaljutu '[zaštićena e -pošta]'
čini

#Odvojeni naziv i vrijednost argumenta
ključ= $(izbaciti $ arg | izrezati -f1 -d=)
vrijednost= $(izbaciti $ arg | izrezati -f2 -d=)

#Print poruka na temelju naziva argumenta
slučaj $ ključ u
Ime) izbaciti 'Ime učenika =$ vrijednost';;
ocjena) izbaciti 'Dobivena oznaka =$ vrijednost' ;;
*)
esac
učinjeno

Izlaz:

Pokrenite skriptu sa sljedećim argumentima naredbenog retka.

$bashcl2.shIme= Abir Hossainocjena=90

U gornjim naredbama navedena su dva argumenta naredbenog retka. Ovi su ime = Abir Hossain i oznaka = 90 . Ime i oznake su odvojene skriptom i dvije se vrijednosti ispisuju nakon formatiranja izlaza.

Obrada argumenata naredbenog retka pomoću getopti funkcija se ne raspravlja u ovom vodiču. Ako želite znati o obradi naredbenog retka pomoću getopti funkciju koju možete posjetiti ovaj vodič .

Idi na vrh

Aritmetika

Izvođenje aritmetičkih operacija uobičajen je zahtjev svakog programskog jezika. Bash izvodi aritmetičku operaciju na drugačiji način od drugog standardnog programskog jezika. Postoji više načina za izvršavanje aritmetičkih operacija u bashu. Jedan od jednostavnih načina izvođenja aritmetičke operacije prikazan je u ovom odjeljku. Napravite bash datoteku sa sljedećom skriptom. Četiri vrste aritmetičkih operacija prikazane su u ovoj skripti. Jednostavne operacije zbrajanja i dijeljenja prikazane su upotrebom dvostrukih prvih zagrada na početku skripte. Zatim se prikazuje operacija predprirastanja. Konačno, način korištenja stenografskog operatora prikazan je u posljednjem dijelu skripte.

arith.sh

#!/bin/bash
# Izračunajte zbroj
proizlaziti= $((pedeset+25))
# Ispišite vrijednost zbrajanja
izbaciti 'zbroj =$ rezultat'

# Izračunajte podjelu
proizlaziti= $((pedeset/25))
# Ispišite vrijednost podjele
izbaciti 'podjela =$ rezultat'

# Dodijelite vrijednost N
N=10
# Radite unaprijed
((--N))
# Ispišite vrijednost N
izbaciti 'Vrijednost nakon smanjenja =$ N'

# Korištenje stenografskog operatora
((N +=10 ))
# Ispišite vrijednost N
izbaciti 'Vrijednost nakon dodavanja 10 =$ N'

Izlaz:

Pokrenite skriptu.

$basharith.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Sve aritmetičke operacije izvode se dvostrukim zagradama u ovoj gornjoj skripti. Ali možete koristiti ' neka ',' ekspr 'I' prije Krista ‘Naredba za izvršavanje aritmetičke operacije u bashu. Ako želite saznati više o ovim naredbama za izvršavanje bash aritmetičkih operacija, posjetite ovaj vodič.

Idi na vrh

Manipulacija nizovima

Mnoge vrste zadataka mogu se obaviti s nizom podataka u bashu. Neki spajaju niz, uspoređuju niz, dijele niz, mijenjaju veličinu niza itd. Ne postoje ugrađene funkcije niza kao drugi standardni jezici u bashu za obavljanje nizova. U ovom odjeljku ovog vodiča razmatraju se neke uobičajene manipulacije nizovima.

Spojni niz

Dodavanje dva ili više nizova naziva se spajanje nizova. Niz se spaja u bash postavljanjem jedan za drugim. Izradite bash datoteku sa sljedećom skriptom za prikaz korištenja povezivanja nizova. Dvije niz varijable se inicijaliziraju i ispisuju nakon kombiniranja varijabli. Ovdje je sadržaj $ niz1 i $ niz2 će se spojiti i ispisati.

concat.sh

#!/bin/bash

#Inicijalizirajte prvu string varijablu
niz 1='Ja volim '
#Inicijaliziraj drugu string varijablu
niz2='Bash programiranje'
#Ispis nakon kombiniranja oba niza
izbaciti '$ niz1$ niz2'

Izlaz:

Pokrenite skriptu.

$bashconcat.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Više o povezivanju nizova možete saznati iz ovog vodiča.

Idi na vrh

Usporedba niza

Bash koristi različite vrste operatora za usporedbu podataka niza. Napravite bash datoteku sa sljedećom skriptom kako biste pokazali kako usporediti dva string podatka. Vrijednost niza uzima se kao ulaz u skriptu koja se uspoređuje s drugim nizom. Ako se vrijednost podudara s porukom, Sviđa vam se Python bit će ispisano na drugi način Volite PERL bit će tiskana.

usporedi.sh

#!/bin/bash
izbacitiUnesite bilo koju vrijednost niza
čitatitekst

#Provjerite jesu li ulazni podaci ekvivalentni Pythonu
ako [ $ text=='Piton' ];zatim
izbaciti 'Sviđa vam se Python.'
drugo
izbaciti 'Ti voliš PERL'
biti

Izlaz:

Pokrenite skriptu.

$bashusporedi.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte gdje je ulazna vrijednost 'PERL'.

Više o usporedbi nizova možete saznati iz ovaj vodič .

Razdvajanje niza

Bash nema ugrađenu funkciju podjele za podjelu podataka niza. Podaci niza mogu se podijeliti na više načina u bash -u na temelju različitih vrsta graničnika. Izradite bash datoteku sa sljedećom skriptom kako biste pokazali kako se nizovi mogu podijeliti na bash. Vrijednost niza uzima se kao ulaz. Ova će skripta podijeliti vrijednost $ text na temelju prostora. Evo, IFS varijabla se koristi za postavljanje graničnika. `čitati` naredba se ovdje koristi za podjelu tekstualne vrijednosti i spremanje vrijednosti u niz. za loop koristi se za ponavljanje niza i ispis vrijednosti svakog elementa.

rascijepiti.š

#!/bin/bash
#Unesite vrijednost niza
izbacitiUnesite vrijednost niza
čitatitekst
# Postavite graničnik
IFS=''
#Podijelite vrijednost $ text u niz na temelju razdjelnika prostora
čitati -dodol<<< '$ text'
# Ispišite svaku vrijednost niza
zavrijednostu '$ {arr [@]}';
čini
printf '$ vrijednost n'
učinjeno

Izlaz:

Pokrenite skriptu.

$bashrascijepiti.š

Sljedeći izlaz će se pojaviti nakon unosa, Naučite Bash programiranje . Ova ulazna vrijednost je tekst od tri riječi. Dakle, niz je podijeljen na tri dijela.

Više o usporedbi nizova možete saznati iz ovaj vodič .

Promjenjivo kućište niza

Većina skriptnih jezika ima ugrađene funkcije za promjenu slova podataka niza. No, slučaj podataka niza može se promijeniti u bash pomoću `tr` naredbom ili pomoću ':Gornji' i ':niži' ključne riječi. Napravite bash datoteku sa sljedećom skriptom kako biste znali načine mijenjanja velikih i malih slova u bashu. Ovdje se podaci prvog niza pretvaraju u velika slova pomoću ‘^^’ simbol, a drugi niz se pretvara u mala slova pomoću `tr` naredba. `tr` naredba će pretražiti sva velika slova u nizu i pretvoriti znakove u mala slova.

slučaj.š

#!/bin/bash

#Inicijalizirajte podatke prvog niza
tekst1='[zaštićena e -pošta]'

#Ispišite vrijednost $ text1 pretvaranjem svih znakova u velika slova
izbaciti $ {e -pošta ^^}

#Inicijalizirajte podatke drugog niza
tekst2= 'Osnove programiranja na bashu'

#Ispišite vrijednost $ text2 pretvarajući sva velika u mala slova
izbaciti $ text2 | NS [:Gornji:] [:niži:]

Izlaz:

Pokrenite skriptu.

$bashslučaj.š

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Više o usporedbi nizova možete saznati iz ovaj vodič .

Idi na vrh

Čitanje podataka niza kroz petlju

Nizni podaci rade kao niz znakova za bilo koji programski jezik. Kako ' za ’Petlja se može koristiti za čitanje podataka niza u bash je prikazano u ovom odjeljku. Izradite osnovnu datoteku sa sljedećom skriptom za čitanje svakog dijela vrijednosti niza pomoću for petlje.

readstr.sh

#!/bin/bas
# Pročitajte svaku riječ teksta pomoću for petlje
zavrijednostuBash programiranjezapočetnici
čini
izbaciti $ vrijednost
učinjeno

Izlaz:

Pokrenite skriptu.

$bashreadstr.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Možete saznati više o iteriranju podataka niza pomoću petlje iz ovaj vodič .

Idi na vrh

Vraćanje povratnih kodova iz skripte i hvatanje u drugu skriptu

Jedna bash skripta može uhvatiti povratne kodove iz druge skripte pozivom skripte i korištenjem '$?' za čitanje povratne vrijednosti. Pretpostavimo, bash datoteka pod nazivom prvo.š vraća kôd nakon izvršenja. Napravite drugu bash datoteku pod nazivom drugo.š i dodajte sljedeću skriptu kako biste uhvatili povratnu vrijednost i izvršili neke druge zadatke. Kôd obje datoteke dan je u nastavku. prvo.š datoteka će biti pozvana iz drugo.š datoteku na početku skripte. prvo.š vratit će izlazni kod na temelju ulazne vrijednosti. second.sh će uhvatiti kod prema '$?' i usporedite s 1. Ako su obje vrijednosti jednake, ispisat će se, Ulazni broj je veći od 100 , u protivnom će se ispisati, Ulazni broj je manji ili jednak 100 .

prvo.š

#!/bin/bash

izbaciti 'Unesite brojčanu vrijednost'
čitatin

# Provjerite je li ulazna vrijednost manja ili jednaka 100 ili nije
ako [[ $ n - 100 ]]
zatim
Izlaz 0
drugo
Izlaz 1
biti

drugo.š

#! /bin/bash

#Izvršite datoteku, first.sh
bash 'first.sh'

#Provjerite je li povratni kôd jednak 1 ili nije
ako [ $? -ekv 1 ]
zatim
izbaciti 'Ulazni broj je veći od 100'
drugo
izbaciti 'Ulazni broj je manji ili jednak 100'
biti

Izlaz:

Pokrenite skriptu.

$bashdrugo.š

Sljedeći izlaz pojavit će se kada se skripta dvaput izvrši pomoću 55 i 110.

Idi na vrh

Čitanje i pisanje u datoteke

Čitanje i pisanje datoteka uobičajeni su zahtjevi bash programiranja. Bash nema ugrađenu funkciju poput drugog jezika za čitanje ili pisanje datoteke. Postoji više načina za čitanje datoteke u bashu. Najčešći način čitanja ili pisanja datoteke u bashu je korištenje `mačka` naredba. Ali ova se naredba koristi za čitanje cijelog sadržaja datoteke odjednom. Također možete čitati bilo koju datoteku redak po redak pomoću bilo koje petlje i `čitati` naredba. Pomoću operatora preusmjeravanja, '>' , možete zapisati podatke u bilo koju datoteku u bash -u. Ako želite dodati podatke u bilo koju datoteku, morate ih koristiti '>>' operater. U sljedećem dijelu ovog odjeljka prikazane su operacije čitanja i pisanja datoteka.

Čitanje datoteke u bashu

Napravite bash datoteku sa sljedećom skriptom za čitanje postojeće datoteke pod nazivom ' hardware.txt ’. Sadržaj ove datoteke dat je u nastavku. U skripti čita čitav sadržaj datoteke `mačka` naredba prva i sljedeća, dok se petlja koristi za čitanje datoteke redak po redak.

hardware.txt

Monitor
Tipkovnica
Miš
Skener
Pisač

readfile.sh

#!/bin/bash

izbaciti 'Čitanje datoteke pomoću naredbe cat'

# Pročitajte sadržaj datoteke naredbom `cat`
sadržaj=``mačkahardware.txt``
izbaciti $ sadržaj

izbaciti 'Čitanje datoteke redak po redak pomoću petlje'

# Dodijelite naziv datoteci
naziv datoteke='hardware.txt'

# Svaki redak datoteke će se čitati svakom iteracijom petlje
dok čitaticrta;
čini
# ispišite redak
izbaciti linija $
učinjeno<$ naziv datoteke

Izlaz:

Pokrenite sljedeće naredbe.

$mačkahardware.txt
$bashreadfile.sh

Ovdje će prva naredba ispisati sadržaj datoteke, hardware.txt bez pokretanja bash skripte, a druga naredba će pokrenuti skriptu readfile.sh i ispisati sadržaj datoteke dva puta pomoću `mačka` zapovijedati i `čitati` naredba s while petljom. Možete posjetiti ovo udžbenik da biste saznali više o čitanju datoteke redak po redak.

Pisanje datoteke u bash -u

Napravite bash datoteku sa sljedećom skriptom za pisanje novog sadržaja u novu datoteku i dodajte podatke u tu datoteku.

writefile.sh

#!/bin/bash

izbaciti 'Unesite neki tekst'
#Pročitajte podatke niza
čitatistr1
#Prvi put dodajte ulazne podatke u datoteku
izbaciti $ str1 >test.txt

izbaciti 'Unesite neki drugi tekst'
#Pročitajte još jedan niz podataka
čitatistr2
#Dodajte ulazne podatke na kraju datoteke
izbaciti $ str2 >>test.txt

#Prikaži cijeli sadržaj datoteke
izbaciti ``mačkatest.txt``

Izlaz:

Pokrenite skriptu.

$bashwritefile.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Idi na vrh

Cijevi

Pipe se koristi za preusmjeravanje bilo kojeg izlaza naredbe na drugi ulaz naredbe. Može se koristiti među različitim vrstama naredbi bash za generiranje specifičnih rezultata. Standardni ulaz povezan je sa standardnim izlazom u Linuxu cijevi. Morate postaviti naredbu u nizu sa simbolom pipe (|) da biste dobili željeni izlaz. Dvije ili više naredbi mogu se izvesti zajedno u jednoj naredbi pomoću pipe. Za izvršavanje istog zadatka morate izvršiti više naredbi u više redaka bez cijevi. Dakle, korištenje cijevi vrlo je korisno za obavljanje mnogih vrsta zadataka u kratkom obliku.

sintaksa:

naredba1|naredba2|...

Ovdje će izlaz naredbe1 biti proslijeđen kao ulaz naredbe2.

Ista vrsta zadatka obavlja se s cijevi i bez cijevi u sljedećem dijelu ovog odjeljka. Pretpostavimo tekstualnu datoteku pod nazivom marks.txt je dan sa sljedećim podacima.

marks.txt

CSR Asraf-409 79

Kabir CSE-304 95

Keya CSE-101 67

CSR Asraf-304 88

Keya CSE-409 90

CSR Asraf-101 92

Morate sortirati podatke datoteke i saznati i ispisati sve unose imena učenika 'K Da ' . Ovaj zadatak možete obaviti pokretanjem više naredbi bez upotrebe cijevi prikazane u sljedećem odjeljku. Sljedeće naredbe morat će se pokrenuti da biste dobili željeni izlaz. Prva naredba sortirat će datoteku. Druga naredba pretražit će unos 'K Da ' pomoću ` zahvat `naredite i pohranite izlaz u temp.txt datoteka. Treća naredba odbrojavat će ukupne retke a temp.txt datoteku pomoću `wc` naredba.

$vrstamarks.txt
$zahvat 'Keya'marks.txt>temp.txt
$zahod -temp.txt

Izlaz:

U dosjeu postoje dva unosa učenika, 'Keya'. Dakle, nakon pokretanja gornjih naredbi pojavit će se sljedeći izlaz.

Gornje tri naredbe možete jednostavno spojiti i dobiti isti izlaz pokretanjem jedne naredbe s cijevi prikazanom u sljedećoj naredbi. Ovdje nije potrebna privremena datoteka da biste dobili izlaz. Ovdje je izlaz ` vrsta naredba `bit će prenesena kao ulaz za ' zahvat `naredba i izlaz` zahvat `naredba će biti proslijeđena kao ulaz za `wc` naredba.

$vrstamarks.txt| zahvat 'Keya' | zahod -

Izlaz:

Nakon pokretanja gornje naredbe dobit ćete sljedeći izlaz poput izlaza prethodne naredbe. Izlaz naredbe bit će 2.

Idi na vrh

Zaključak:

Najkorisnije i najnužnije teme bash skriptnog jezika pokušavaju se pokriti u ovom vodiču. Nadam se da će čitatelj nakon čitanja ovog vodiča imati koristi i da će moći učinkovitije pisati bash skriptu.