Bash Scripting apmācība iesācējiem

Bash Scripting Tutorial



Linux noklusējuma komandu valoda ir Bash skripts. Mums ikdienā ir jāizpilda daudzas komandas Linux daudzos nolūkos. Šos ikdienas uzdevumus var automatizēt, izmantojot bash skriptu. Jebkurš lietotājs var ļoti viegli un ātri apgūt šo skriptu valodu. Ja esat jauns bash programmēšanas lietotājs, šī apmācība ir paredzēta jums.

Saturs:

  1. Komentāri
  2. atbalss komanda
  3. Mainīgie
  4. Nosacīts paziņojums
  5. Cilpas
  6. Funkcijas
  7. Programmu izsaukšana skriptā
  8. Izvēlņu izveide
  9. Komandrindas apstrāde
  10. Aritmētika
  11. Stīgu manipulācija
  12. Atgriešanas kodu atgriešana no skripta un cita skripta iegūšana
  13. Lasīšana un rakstīšana failos
  14. Caurules

Komentāri

Komentāru pievienošana ar kodu ir būtiska jebkuras programmēšanas valodas sastāvdaļa. Izpildes laikā komentāri netiek parsēti ar skriptu. Lasītājs var pareizi saprast jebkuru kodu, ja kods ir labi komentēts. Jūs varat pievienot komentāru vairākos veidos bash skriptā. Šajā daļā ir parādīts, kā bash skriptā var pievienot vienas rindas un vairāku rindu komentārus. Izveidojiet bash failu ar šādu skriptu, lai uzzinātu bash komentāru izmantošanu. Šeit simbols “#” tiek izmantots, lai pievienotu vienas rindas komentāru, un viens citāts (“) ar“: ”tiek izmantots vairāku rindu komentāru pievienošanai.







bash_comment.sh



#!/bin/bash
#Ievadiet skaitli
izmest ārā 'Ievadiet numuru'
lasītuz
:'
Pārbaudiet, vai ievades numurs ir
mazāks par 10 vai lielāks par 10 vai vienāds ar 10
'

ja [[ $ a -st 10 ]]
tad
izmest ārā 'Skaitlis ir mazāks par 10'
elifs [[ $ a -gt 10 ]]
tad
izmest ārā 'Skaitlis ir lielāks par 10'
citādi
izmest ārā 'Skaitlis ir vienāds ar 10'
būt

Izeja:



Palaidiet skriptu.





$bashbash_comment.sh

Šeit skripts tiek izpildīts trīs reizes ar ievades vērtību 3, 10 un 90. Tiks parādīta šāda izvade.



Ja vēlaties uzzināt vairāk par bash komentēšanu, varat pārbaudīt šī apmācība .

Iet uz augšu

atbalss komanda

Komanda 'echo' tiek izmantota bash, lai drukātu izvadi terminālī. Ar echo komandu bash var izmantot dažādas iespējas, lai izdrukātu izvadi dažādos veidos. Izveidojiet bash failu ar šādu skriptu, lai uzzinātu divus vienkāršus komandas 'echo' lietojumus. Šeit pirmā komanda 'echo' izdrukās vienkāršus teksta datus ar jaunu rindu, bet otrā atbalss komanda - vienkāršu tekstu bez jaunas rindas.

echo_test.sh

#!/bin/bash
#Izdrukājiet pirmo tekstu
izmest ārā 'Drukāt tekstu ar jaunu rindu'
#Izdrukājiet otro tekstu
izmest ārā -n 'Drukāt tekstu bez jaunas rindas'

Izeja:

Palaidiet skriptu.

$bashecho_test.sh

Pēc iepriekš minētās komandas izpildes parādīsies šāda izvade.

Bash ir daudz citu komandu 'echo' lietojumu. Jūs varat pārbaudīt šo apmācību, lai uzzinātu vairāk par komandu 'echo'.

Iet uz augšu

Mainīgie

Mainīgā deklarācija ir nepieciešama jebkuras programmēšanas valodas sastāvdaļa. Bash mainīgos var deklarēt dažādos veidos. Ja mainīgajam ir piešķirta vērtība, tad mainīgā sākumā netiek izmantots simbols. Simbols “$” tiek lietots kopā ar mainīgā nosaukumu, lasot mainīgā vērtību. Mainīgo var izmantot no termināļa vai jebkurā bash skriptā.

Tālāk norādītās komandas deklarēs virknes mainīgo ar nosaukumu mystr ar noteiktu vērtību un pēc tam terminālī izdrukājiet mainīgā vērtību.

$mystr='Man patīk bash programmēšana'
$izmest ārā $ mystr

Izeja:

Izveidojiet bash failu ar šādu skriptu. Šeit ir norādīti divi mainīgie. Šie ir $ a un $ b . Ja ievadītā vērtība, kas tiek saglabāta $ a ir vienāds ar $ b tad ziņa, Skaitļi ir vienādi tiks drukāts citādi Skaitļi nav vienādi tiks izdrukāts.

var.sh

#!/bin/bash
izmest ārā 'Ievadiet numuru'
lasītuz
b=100
ja [[ $ a -ekv $ b ]]
tad
izmest ārā 'Skaitļi ir vienādi'
citādi
izmest ārā 'Skaitļi nav vienādi'
būt

Izeja:

Palaidiet skriptu.

$bashvar.sh

Iepriekš minētā komanda tiek izpildīta divas reizes ar vērtību 56 un 100. Tiks parādīta šāda izvade.

Ja vēlaties uzzināt vairāk par bash mainīgajiem, varat to pārbaudīt šī apmācība .

Iet uz augšu

Nosacīts paziņojums

Tāpat kā citu programmēšanas valodu, bash varat izmantot nosacījuma paziņojumu. ' Ja-tad-citādi ' un ' gadījumā Paziņojumus galvenokārt izmanto nosacījumu paziņojumu ieviešanai jebkurā programmēšanas valodā. Nosacījuma paziņojuma izmantošana, izmantojot 'Ja' paziņojums ir parādīts šajā apmācības sadaļā. Izveidojiet bash failu ar šādu skriptu, kur tiek izmantots nosacījuma paziņojums. Šeit divas vērtības no lietotāja tiks ņemtas kā ievade un saglabātas mainīgajos, $ kods , un $ vecums . Paziņojumu “ja” izmanto, lai pārbaudītu $ vecums ir lielāks vai vienāds ar 18 un vērtība $ kods ir 1100 . Ja abi nosacījumi ir patiesi, ziņojums, Jums ir tiesības redzēt filmu tiks drukāts citādi Jūs neesat tiesīgs redzēt filmu tiks izdrukāts.

cond.sh

#!/bin/bash

izmest ārā 'Ievadi savu kodu'
lasītkods
izmest ārā 'Ievadiet savu vecumu'
lasītvecums

ja [[ $ vecums -dot 18 && $ kods -ekv '1100' ]]
tad
izmest ārā 'Jums ir tiesības redzēt filmu'
citādi
izmest ārā 'Jūs neesat tiesīgs redzēt filmu'
būt

Izeja:

Palaidiet skriptu.

$bashcond.sh

Pēc dažādu ievades vērtību iegūšanas parādīsies šāda izvade. 1100 tiek dots kā kods, bet 5 - kā vecums pirmajai izpildei un, ja nosacījums šīm vērtībām atgriež nepatiesu. 1100 tiek dots kā kods, bet 45 - kā vecums otrajai izpildei, kas atgriež patiesu nosacījumu if.

Ja vēlaties uzzināt vairāk par bash nosacījuma paziņojumu, varat pārbaudīt šo apmācību.

Iet uz augšu

Cilpas

Ja dažas skripta daļas ir jāizpilda vairākas reizes, tad uzdevuma veikšanai tiek izmantota cilpa. Bash atbalsta trīs veidu cilpu deklarācijas, tāpat kā citas valodas. Tie ir paredzēti, kamēr un līdz cilpām. Pamatojoties uz programmēšanas prasībām, skriptā tiek izmantota noteikta cilpa. Šo trīs veidu cilpu pielietojums ir parādīts šajā sadaļā, izmantojot vienkāršus piemērus.

Izmantojot cilpai

Izveidojiet bash failu ar šādu skriptu, kur ' par ` cilpa tiek izmantota atkārtošanai. 'par' cilpa galvenokārt tiek izmantota datu saraksta vai masīva atkārtošanai. Šeit tiek izmantots nedēļas dienu nosaukumu saraksts, un katrs nedēļas dienas nosaukums tiek atkārtots, izmantojot cilpu. `ja` paziņojums tiek izmantots, lai drukātu noteiktu ziņojumu, pamatojoties uz darba dienas nosaukumu.

priekš.sh

#Katrā cilpas iterācijā izlasiet nedēļas dienas nosaukumu
priekšdienaiekšāPirmdiena Otrdiena Trešdiena Ceturtdiena Piektdiena Sestdiena Svētdiena
darīt

#Pārbaudiet, vai darbdienas nosaukums ir pirmdiena vai ceturtdiena
ja [[ $ diena=='Pirmdiena' || $ diena=='Ceturtdiena' ]]
tad
izmest ārā 'Tikšanās turpinās$ dienapulksten 9:30

#Pārbaudiet, vai darbdienas nosaukums ir otrdiena vai trešdiena vai piektdiena
elifs [[ $ diena=='Otrdiena' || $ diena=='Trešdiena' || $ diena=='Piektdiena' ]]
tad
izmest ārā 'Apmācība$ dienapulksten 11:00
citādi

#Izdrukājiet brīvdienas citām dienām
izmest ārā '$ dienair svētki '
būt
darīts

Izeja:

Palaidiet skriptu.

$bashpriekš.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Ja vēlaties uzzināt vairāk par bash izmantošanu cilpai, varat pārbaudīt šo apmācību.

Izmantojot cilpu

Izveidojiet bash failu ar šādu skriptu, kur ' kamēr ` cilpa tiek izmantota atkārtošanai. Šis skripts izdrukās tos skaitļus no 1 līdz 20, kas ir vienmērīgi un dalāmi ar 5. Šeit, $ skaitītājs mainīgais tiek izmantots, lai kontrolētu cilpas atkārtojumu, un šī mainīgā vērtība tiek palielināta par 1 katrā atkārtojumā. Kad `ja` nosacījums atgriezīsies patiess, tad tiks izdrukāta vērtība $ skaitītājs .

#!/bin/bash

#Izdrukājiet ziņu
izmest ārā 'Izdrukājiet skaitļus, kas ir pāra un dalāmi ar 5'

#Inicializējiet skaitītāju
skaitītājs=1

#Atkārtojiet ciklu, līdz $ skaitītāja vērtība ir mazāka vai vienāda ar 20
kamēr [ $ skaitītājs -viņi divdesmit ]
darīt

#Pārbaudiet, vai skaitītājs $ dalās ar 2 un 5
ja [[ $ skaitītājs%2-ekv 0 && $ skaitītājs%5-ekv 0 ]]
tad
#Izdrukāt $ skaitītāju bez jaunas rindas
izmest ārā '$ skaitītājs'
būt

#Lielinājuma $ skaitītājs par 1
((skaitītājs ++))
darīts
izmest ārā 'Gatavs'

Izeja:

$bashkamēr.sh

1-20 robežās ir tikai skaitļi, kas ir pāra un dalāmi ar 5. Pēc skripta palaišanas parādīsies šāda izvade.

Ja vēlaties uzzināt vairāk par bash kamēr ` cilpa, tad jūs varat pārbaudīt šī apmācība .

Izmantojot līdz cilpai

Izveidojiet bash failu ar šādu skriptu, kur ' līdz ` cilpa tiek izmantota atkārtošanai. Šis skripts drukās visus nepāra skaitļus no 0 līdz 20. $ n mainīgais šajā skriptā tiek izmantots cilpas atkārtošanai.

līdz.sh

#!/bin/bash

#Inicializēt mainīgo, n
n=divdesmit

#Atkārtojiet cilpu, līdz $ n vērtība ir lielāka par 0
līdz [ $ n -st 0 ]
darīt

#Pārbaudiet, vai n vērtība ir nepāra
ja [[ $ n%2-gt 0 ]]
tad
izmest ārā $ n
būt

#Palieliniet n vērtību par 1
((n=$ n-1))
darīts

Izeja:

Palaidiet skriptu.

$bashlīdz.sh

Skripts drukās visus pāra skaitļus no 20 līdz 1. Pēc skripta palaišanas parādīsies šāda izvade.

Iet uz augšu

Funkcijas

Ja koda bloks skriptā jāizpilda vairākas reizes, funkcija tiek izmantota uzdevuma veikšanai. Funkcija jāizsauc tikai pēc nosaukuma, ja funkcijā definētais skripts jāizpilda daudzas reizes, nevis jāpievieno viens un tas pats skripts vairākas reizes. Sākuma un beigu pirmā iekava tiek izmantota ar funkcijas nosaukumu, lai deklarētu funkciju bash skriptā. Funkciju var izsaukt tikai ar funkcijas nosaukumu bash. Bash neatbalsta funkciju argumentu kā cita standarta programmēšanas valoda. Bet vērtību bash funkcijai var nodot citā veidā, kā parādīts šajā sadaļā. Vērtību var atdot no funkcijas ar atgriešanās paziņojumu vai neizmantojot atgriešanās paziņojumu.

Izveidojiet bash failu ar šādu skriptu, lai uzzinātu, kā funkcijas var deklarēt un izsaukt bash skriptā. Skriptā ir deklarētas trīs funkcijas. Pirmā funkcija tiek deklarēta, lai izdrukātu vienkāršu ziņojumu, Bash programmēšana iesācējiem . Otrā funkcija ir deklarēta, lai mainīgajā piešķirtu virknes vērtību, $ return_str kas drukās, Uzziniet bash programmēšanu, izmantojot LinuxHint pēc funkcijas izsaukšanas. Tiek paziņots, ka trešā funkcija nolasa argumenta vērtību kā apļa rādiusu, kas tiks sniegta funkcijas izsaukšanas laikā. Šeit, vietējais tiek izmantota, lai nolasītu argumenta vērtību. Šī funkcija aprēķinās apļa laukumu, pamatojoties uz rādiusa vērtību, izmantojot formulu, πr2 un izdrukājiet aprēķināto laukuma vērtību.

func.sh

#!/bin/bash

#Deklarējiet vienkāršu funkciju
funkcijuprint_message()
{
izmest ārā 'Bash programmēšana iesācējiem'
}

#Deklarējiet funkciju, lai atgrieztu virknes vērtību
funkcijuret_strdata()
{
#Inicializējiet mainīgo ar virknes vērtību
return_str='Uzziniet bash programmēšanu, izmantojot LinuxHint'
}

#Deklarējiet funkciju argumenta vērtības nolasīšanai
funkcijuaprēķināt_apgabalu()

#Izlasiet nodoto argumenta vērtību
vietējais rādiuss=$ 1
apgabalā= $(izmest ārā $ rādiuss*$ rādiuss*3.14

#Zvaniet šai funkcijai, lai izdrukātu vienkāršu ziņojumu
print_message

#Zvaniet funkcijai, kas mainīgajam piešķirs virknes vērtību
ret_strdata

#Izdrukājiet mainīgā vērtību
izmest ārā $ return_str

#Izlasiet rādiusa vērtību
izmest ārā 'Ievadiet rādiusa vērtību'
lasītstrādāt

#Zvaniet funkcijai ar rādiusa vērtību
aprēķināt_apgabalu$ rad

Izeja:

Palaidiet skriptu.

$bashfunc.sh

Pēc skripta palaišanas parādīsies šāda izvade. Pirmās divas rindas tiks drukātas, izsaucot funkcijas, print_message () un ret_strdata () . Pēdējā rinda tiks izdrukāta, izsaucot funkciju, aprēķināt_apgabalu () ar iegūto ievades rādiusa vērtību.

Ja vēlaties uzzināt par virknes atgriešanu no bash funkcijas, varat šī apmācība .

Iet uz augšu

Programmu izsaukšana skriptā

Jūs varat izmantot daudzu veidu komandas, lai izsauktu citas programmas jebkurā bash skriptā, piemēram, avots, bash, eval, izpildītājs , utt. Pieņemsim, ka trīs bash faili, add.sh , atņemt.sh, reizināt.sh un dalīt.sh izveidots, lai veiktu saskaitīšanu, atņemšanu, reizināšanu un dalīšanu. Šeit, atņemt.sh un sadalījums.sh izlasiet komandrindas argumentus. Visu šo četru failu skripts ir norādīts zemāk.

add.sh

#!/bin/bash
uz=60
b=40
((rezultāts=$ a+$ b))
izmest ārā 'Papildinājums$ a+$ b=$ rezultāts'

atņemt.sh

#!/bin/bash
uz=$ 1
b=2 ASV dolāri
((rezultāts=$ a-$ b))
izmest ārā 'Atņemšana no$ a-$ b=$ rezultāts'

pavairot.sh

#!/bin/bash
((rezultāts=$ 1*2 ASV dolāri))
izmest ārā '1 un 2 ASV dolāru reizinājums ir$ rezultāts'

sadalīt.sh

#!/bin/bash
uz=$ 1
b=2
((rezultāts=$ a/$ b))
izmest ārā 'Sadalījums$ apēc$ bir$ rezultāts'

Izveidojiet bash failu ar nosaukumu, callpro.sh ar šādu skriptu, lai izsauktu minētos bash failus, izmantojot avota, bash, eval un exec komandas. Pirms šī skripta palaišanas jums ir jāiestata izpildes atļauja iepriekš minētajiem četriem failiem. Komanda 'avots' tiek izmantota, lai izsauktu add.sh failu. Komanda 'bash' tiek izmantota, lai izpildītu failu subtract. Komanda 'eval' tiek izmantota, lai izpildītu failu multiply.sh. Divas ievades vērtības tiek nosūtītas kā komandrindas argumenti komandai 'eval'. Pēdējā komanda ir exec komanda, kas darbojas tikai ar absolūtu ceļu. Šim nolūkam skriptā ir norādīts pilns divide.sh faila ceļa nosaukums.

callpro.sh

#!/bin/bash
skripts1='add.sh'
skripts2='atņemt.sh'
skripts3='multiply.sh'
skripts4='/home/fahmida/code/divide.sh'

avots '$ script1'

bash $ script2 piecdesmit divdesmit

izmest ārā 'Ievadiet a vērtību'
lasītuz
izmest ārā 'Ievadiet b vērtību'
lasītb
eval bash $ script3 $ a $ b
izpildītājs $ script4 30

Izeja:

Palaidiet skriptu.

$bashcallpro.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Iet uz augšu

Izvēlņu izveide

Bash ir noderīga komanda, lai izveidotu vienkāršu izvēlni, ko sauc 'izvēlēties' komandu. Izmantojot šo komandu, var izveidot dažāda veida izvēlnes. Izmantojot šo komandu, izvēlnes izveidošanai tiek izmantots konkrēts datu saraksts. Izveidojiet bash failu ar šādu kodu, lai redzētu tā izmantošanu 'izvēlēties' komandu izvēlnes izveidošanai. Šajā piemērā piecu vienumu saraksts tiks izdrukāts kā izvēlne un mudinās lietotāju izvēlēties jebkuru valodu no saraksta. Atlasītā vērtība tiks saglabāta mainīgajā, $ valoda kas tiek izdrukāts vēlāk, savienojot ar citu virkni. Skripts nepārtraukti lūgs izvēlēties valodu, līdz lietotājs nospiež 6 pārtraukt no skripta.

menu.sh

#!/bin/bash

#Izdrukāt ziņojumu lietotājam
izmest ārā 'Izvēlieties savu iecienītāko valodu'

# Definējiet izvēlnes vienuma sarakstu
izvēlietiesvalodaiekšāC# Java PHP Python Bash izeja
darīt
#Izdrukājiet izvēlēto vērtību
ja [[ $ valoda=='Izeja' ]]
tad
Izeja 0
citādi
izmest ārā 'Izvēlētā valoda ir$ valoda'
būt
darīts

Izeja:

Palaidiet skriptu.

$bashmenu.sh

Saskaņā ar šādu izvadi lietotājs pirmo reizi nospieda 3, kad tika izdrukāts PHP, un otro reizi nospieda 6, kas tika pārtraukts no skripta.

Ja vēlaties uzzināt vairāk par bash izvēlnes izveidi, izmantojot 'select', varat apmeklēt šo apmācību.

Iet uz augšu

Komandrindas apstrāde

Dažreiz, izpildot skriptu no komandrindas, mums ir jāsniedz ievades vērtības. Šo uzdevumu bash var veikt divos veidos. Viens veids ir izmantot argumentu mainīgos, bet otrs veids ir izmantot funkciju getopts. Šajā sadaļā ir parādīta komandrindas ievades datu nolasīšana no termināļa, izmantojot argumentu mainīgo.

Izveidojiet bash failu ar šādu skriptu, lai redzētu komandrindas argumentu vērtības lasīšanu. Šis skripts nolasīs trīs komandrindas argumentus, kas tiks saglabāti mainīgajos, $ operand1, $ operand2 un $ operator. Lai pareizi izpildītu skriptu, pirmajai un trešajai argumenta vērtībai ir jābūt skaitlim, bet otrajai argumenta vērtībai jābūt jebkuram no četriem aritmētiskajiem operatoriem (“+”, “-”, “/”, “x”). ja paziņojums pārbaudīs operatora $ vērtību un veiks operāciju, pamatojoties uz operatoru, un izdrukās vērtību.

cl1.sh

#!/bin/bash

#Izdrukājiet argumentu mainīgos
izmest ārā 'Argumentu vērtības ir: $ 1 $ 2 $ 3'

# Saglabājiet argumentu vērtības
operands 1=$ 1
operands2=3 ASV dolāri
operators=2 ASV dolāri

#Pārbaudiet 2. komandas argumenta vērtību, lai veiktu aritmētisko darbību
ja [[ $ operators=='+' ]]
tad
((rezultāts=$ operand1+$ operand2))
elifs [[ $ operators=='-' ]]
tad
((rezultāts=$ operand1-$ operand2))
elifs [[ $ operators=='x' ]]
tad
((rezultāts=$ operand1*$ operand2))
elifs [[ $ operators=='/' ]]
tad

((rezultāts=$ operand1/$ operand2))
būt

# izdrukājiet rezultātu
izmest ārā -Un 'Rezultāts ir =$ rezultāts'

Izeja:

Palaidiet skriptu.

$bashcl1.sh

Skripts tiek izpildīts četras reizes četriem aritmētisko operatoru veidiem. Argumentu vērtībām parādīsies šāda izvade, 6 + 3, 6 - 3, 6 x 3 un 6/3 .

Argumentu vērtības var nodot ar vārdu un vērtību pāri bash. Izveidojiet bash failu ar šādu skriptu, lai parādītu, kā nolasīt argumentu vērtības ar nosaukumu. Skripts nolasīs divus argumentu mainīgos. Argumenta vērtības ar nosaukumu tiek drukātas skripta pirmajā paziņojumā. Tālāk for for izmanto, lai atkārtotu masīvu, kurā ir komandrindas argumentu vērtības. Katrs masīva elements ir atdalīts atslēgu un vērtību pārī, izmantojot komandu 'cut'. Pēc tam gadījuma paziņojums tiek izmantots, lai drukātu noteiktu ziņojumu, pamatojoties uz atslēgas vērtību.

cl2.sh

. #! /esmu/bash

#Izdrukājiet argumentu mainīgos
izmest ārā 'Argumentu vērtības ir: $ 1 $ 2'

#Izlasiet katru argumentu atsevišķi, izmantojot cilpu
priekšdusmīgsiekšā '[aizsargāts ar e -pastu]'
darīt

#Atdaliet argumenta nosaukumu un vērtību
taustiņu= $(izmest ārā $ arg | griezt -f1 -d=)
vērtību= $(izmest ārā $ arg | griezt -f2 -d=)

#Izdrukāt ziņojumu, pamatojoties uz argumenta nosaukumu
gadījumā $ atslēga iekšā
vārds) izmest ārā 'Studenta vārds =$ vērtība';;
zīme) izmest ārā 'Iegūtā atzīme =$ vērtība' ;;
*)
esac
darīts

Izeja:

Palaidiet skriptu, izmantojot šādus komandrindas argumentus.

$bashcl2.shvārds= Abirs Hosainszīme=90

Iepriekš minētajās komandās ir sniegti divi komandrindas argumenti. Šie ir vārds = Abir Hossain un atzīme = 90 . vārds un zīmes tiek atdalīti ar skriptu, un pēc izvades formatēšanas tiek izdrukātas divas vērtības.

Komandrindas argumentu apstrāde, izmantojot getopts funkcija šajā apmācībā nav apskatīta. Ja vēlaties uzzināt par komandrindas apstrādi, izmantojot getopts funkciju, tad jūs varat apmeklēt šī apmācība .

Iet uz augšu

Aritmētika

Aritmētiskās darbības veikšana ir jebkuras programmēšanas valodas kopīga prasība. Bash veic aritmētisko darbību citādi nekā cita standarta programmēšanas valoda. Ir vairāki veidi, kā veikt aritmētiskās darbības bash. Šajā sadaļā ir parādīts viens no vienkāršajiem aritmētiskās darbības veikšanas veidiem. Izveidojiet bash failu ar šādu skriptu. Šajā skriptā ir parādīti četri aritmētisko darbību veidi. Vienkāršas summēšanas un dalīšanas darbības tiek parādītas, skripta sākumā izmantojot dubultās pirmās iekavas. Tālāk tiek parādīta iepriekšēja pieauguma darbība. Visbeidzot, skripta pēdējā daļā ir parādīts saīsinātā operatora izmantošanas veids.

arith.sh

#!/bin/bash
# Aprēķiniet summu
rezultāts= $((piecdesmit+25))
# Izdrukājiet summēšanas vērtību
izmest ārā 'summa =$ rezultāts'

# Aprēķiniet dalījumu
rezultāts= $((piecdesmit/25))
# Drukāt sadalījuma vērtību
izmest ārā 'sadalījums =$ rezultāts'

# Piešķiriet vērtību N
N=10
# Tiek veikta iepriekšēja palielināšana
((--N))
# Izdrukājiet N vērtību
izmest ārā 'Vērtība pēc samazinājuma =$ N'

# Izmantojot saīsināto operatoru
((N +=10 ))
# Izdrukājiet N vērtību
izmest ārā 'Vērtība pēc 10 pievienošanas =$ N'

Izeja:

Palaidiet skriptu.

$basharith.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Visas aritmētiskās darbības tiek veiktas, izmantojot dubultās iekavas šajā iepriekšminētajā skriptā. Bet jūs varat izmantot ' ļaut ',' izteiksme ' un ' bc 'Komanda veikt aritmētisko darbību bash. Ja vēlaties uzzināt vairāk par šīm komandām bash aritmētisko darbību veikšanai, varat apmeklēt šo apmācību.

Iet uz augšu

Manipulācija ar stīgām

Izmantojot virknes datus bash, var veikt daudzu veidu uzdevumus. Daži no tiem apvieno virkni, salīdzina virkni, sadala virkni, maina virknes reģistru utt. Nav virknes darbību, piemēram, citas standarta valodas bash valodā. Šajā apmācības sadaļā ir apskatītas dažas izplatītas manipulācijas ar virknēm.

Saskaņojošā virkne

Divu vai vairāku virkņu pievienošanu sauc par virkņu savienošanu. Stīgu apvieno bash, ievietojot vienu pēc otra. Izveidojiet bash failu ar šādu skriptu, lai parādītu virkņu savienošanas izmantošanu. Divi virkņu mainīgie tiek inicializēti un izdrukāti pēc mainīgo apvienošanas. Lūk, saturs $ string1 un $ string2 tiks apvienoti un izdrukāti.

concat.sh

#!/bin/bash

#Inicializēt pirmo virknes mainīgo
virkne1='Man patīk '
#Inicializēt otrā virknes mainīgo
virkne2='Bash programmēšana'
#Izdrukājiet pēc abu virkņu apvienošanas
izmest ārā '$ string1$ string2'

Izeja:

Palaidiet skriptu.

$bashconcat.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Jūs varat uzzināt vairāk par virkņu savienošanu no šīs apmācības.

Iet uz augšu

Stīgu salīdzināšana

Bash virknes datu salīdzināšanai izmanto dažāda veida operatorus. Izveidojiet bash failu ar šādu skriptu, lai parādītu, kā salīdzināt divus virkņu datus. Virknes vērtība tiek uzskatīta par skripta ievadi, kas tiek salīdzināta ar citu virkni. Ja vērtība atbilst ziņojumam, Tev patīk Python tiks drukāts citādi Tev patīk PERL tiks izdrukāts.

salīdzināt.sh

#!/bin/bash
izmest ārāIevadiet jebkuru virknes vērtību
lasītteksts

#Pārbaudiet, vai ievades dati ir līdzvērtīgi Python
ja [ $ teksts=='Python' ];tad
izmest ārā 'Jums patīk Python.'
citādi
izmest ārā 'Tev patīk PERL'
būt

Izeja:

Palaidiet skriptu.

$bashsalīdzināt.sh

Pēc skripta palaišanas parādīsies šāda izvade, kur ievades vērtība ir “PERL”.

Jūs varat uzzināt vairāk par virkņu salīdzināšanu no šī apmācība .

Sadalīšanas virkne

Bash nav iebūvēta sadalīšanas funkcija virkņu datu sadalīšanai. Virkņu datus bash var sadalīt vairākos veidos, pamatojoties uz dažādiem atdalītāju veidiem. Izveidojiet bash failu ar šādu skriptu, lai parādītu, kā virknes datus var sadalīt bash. Virknes vērtība tiek izmantota kā ievade. Šis skripts sadalīs vērtību $ teksts pamatojoties uz telpu. Lūk, IFS mainīgo izmanto, lai iestatītu norobežotāju. `lasīt` komanda šeit tiek izmantota, lai sadalītu teksta vērtību un saglabātu vērtības masīvā. priekš cilpa tiek izmantota, lai atkārtotu masīvu un izdrukātu katra elementa vērtību.

sadalīt.sh

#!/bin/bash
#Ievadiet virknes vērtību
izmest ārāIevadiet virknes vērtību
lasītteksts
# Iestatiet norobežotāju
IFS=''
#Sadaliet $ teksta vērtību masīvā, pamatojoties uz atstarpi
lasīt -uzarr<<< '$ teksts'
# Izdrukājiet katru masīva vērtību
priekšvērtībuiekšā '$ {arr [@]}';
darīt
printf '$ vērtība n'
darīts

Izeja:

Palaidiet skriptu.

$bashsadalīt.sh

Pēc ievades parādīsies šāda izvade, Uzziniet Bash programmēšanu . Šī ievades vērtība ir trīs vārdu teksts. Tātad, virkne ir sadalīta trīs daļās.

Jūs varat uzzināt vairāk par virkņu salīdzināšanu no šī apmācība .

Mainīgs virknes reģistrs

Lielākajai daļai skriptu valodu ir iebūvētas funkcijas, lai mainītu virknes datu reģistru. Bet virknes datu gadījumu var mainīt bash, izmantojot 'tr' komandu vai izmantojot ': Augšējais' un ': Zemāks' atslēgvārdus. Izveidojiet bash failu ar šādu skriptu, lai uzzinātu veidus, kā mainīt burtus bash. Šeit pirmie virknes dati tiek pārvērsti lielajos burtos, izmantojot ‘^^’ simbolu, un otrā virkne tiek pārveidota par mazajiem burtiem, izmantojot 'tr' komandu. 'tr' komanda meklēs visus lielos burtus virknē un pārvērsīs rakstzīmes mazajos burtos.

lieta.sh

#!/bin/bash

#Inicializēt pirmos virknes datus
teksts1='[aizsargāts ar e -pastu]'

#Izdrukājiet $ text1 vērtību, pārvēršot visas rakstzīmes ar lielajiem burtiem
izmest ārā $ {e -pasts ^^}

#Inicializējiet otrās virknes datus
teksts2= 'Bash programmēšanas pamati'

#Izdrukājiet $ text2 vērtību, pārvēršot visus lielos burtus par mazajiem
izmest ārā $ text2 | NS [: augšējais:] [: zemāks:]

Izeja:

Palaidiet skriptu.

$bashlieta.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Jūs varat uzzināt vairāk par virkņu salīdzināšanu no šī apmācība .

Iet uz augšu

Stīgu datu nolasīšana caur cilpu

Virkņu dati darbojas kā rakstzīmju masīvs jebkurai programmēšanas valodai. Kā ' priekš Cilpa var tikt izmantota, lai lasītu virknes datus bash, ir parādīta šajā sadaļā. Izveidojiet bāzes failu ar šādu skriptu, lai izlasītu katru virknes vērtības daļu, izmantojot cilpu.

readstr.sh

#!/bin/bas
# Izlasiet katru teksta vārdu, izmantojot cilpu
priekšvērtībuiekšāBash programmēšanapriekšiesācējiem
darīt
izmest ārā $ vērtība
darīts

Izeja:

Palaidiet skriptu.

$bashreadstr.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Jūs varat uzzināt vairāk par virknes datu atkārtošanu, izmantojot cilpu no šī apmācība .

Iet uz augšu

Atgriešanas kodu atgriešana no skripta un cita skripta iegūšana

Viens bash skripts var noķert atgriešanās kodus no cita skripta, izsaucot skriptu un izmantojot '$?' lai lasītu atgriešanās vērtību. Pieņemsim, bash fails ar nosaukumu pirmais.sh pēc izpildes atgriež kodu. Izveidojiet citu bash failu ar nosaukumu otrais.sh un pievienojiet šādu skriptu, lai iegūtu atgriešanās vērtību un veiktu dažus citus uzdevumus. Abu failu kods ir norādīts zemāk. pirmais.sh fails tiks izsaukts no otrais.sh failu skripta sākumā. pirmais.sh atgriezīs izejas kodu, pamatojoties uz ievades vērtību. second.sh noķers kodu '$?' un salīdziniet ar 1. Ja abas vērtības ir vienādas, tas tiks izdrukāts, Ievades skaitlis ir lielāks par 100 , pretējā gadījumā tas tiks drukāts, Ievades numurs ir mazāks vai vienāds ar 100 .

pirmais.sh

#!/bin/bash

izmest ārā 'Ievadiet skaitlisku vērtību'
lasītn

# Pārbaudiet, vai ievades vērtība ir mazāka vai vienāda ar 100 vai nav
ja [[ $ n -viņi 100 ]]
tad
Izeja 0
citādi
Izeja 1
būt

otrais.sh

#! /bin/bash

#Izpildiet failu, first.sh
bash 'first.sh'

#Pārbaudiet, vai atgriešanās kods ir vienāds ar 1 vai nē
ja [ $? -ekv 1 ]
tad
izmest ārā 'Ievades numurs ir lielāks par 100'
citādi
izmest ārā 'Ievades numurs ir mazāks vai vienāds ar 100'
būt

Izeja:

Palaidiet skriptu.

$bashotrais.sh

Šāda izvade parādīsies, kad skriptu divas reizes izpildīs 55 un 110.

Iet uz augšu

Lasīšana un rakstīšana failos

Failu lasīšana un rakstīšana ir kopīgas bash programmēšanas prasības. Bash nav iebūvēta funkcija, piemēram, citā valodā, lai lasītu vai rakstītu failu. Ir vairāki veidi, kā lasīt failu bash. Visizplatītākais veids, kā lasīt vai rakstīt failu bash, ir `kaķis` komandu. Bet šī komanda tiek izmantota, lai vienlaikus izlasītu visu faila saturu. Varat arī izlasīt jebkuru failu pa rindām, izmantojot jebkuru cilpu un `lasīt` komandu. Izmantojot novirzīšanas operatoru, '>' , jūs varat ierakstīt datus jebkurā bash failā. Ja vēlaties pievienot datus jebkuram failam, jums tas jāizmanto '>>' operators. Gan lasīšanas, gan rakstīšanas failu darbības ir parādītas šīs sadaļas nākamajā daļā.

Faila lasīšana bash

Izveidojiet bash failu ar šādu skriptu, lai lasītu esošu failu ar nosaukumu “ hardware.txt ’. Šī faila saturs ir norādīts zemāk. Skriptā tiek lasīts viss faila saturs `kaķis` komandu vispirms un pēc tam, kamēr cilpa tiek izmantota, lai lasītu failu pa rindām.

hardware.txt

Monitors
Tastatūra
Pele
Skeneris
Printeris

readfile.sh

#!/bin/bash

izmest ārā 'Faila lasīšana, izmantojot kaķa komandu'

# Izlasiet faila saturu, izmantojot komandu 'cat'
saturu=``kaķishardware.txt``
izmest ārā $ saturu

izmest ārā 'Faila lasīšana pa rindām, izmantojot cilpu'

# Piešķiriet faila nosaukumu
faila nosaukums='hardware.txt'

# Katra faila rinda tiks nolasīta katrā cilpas iterācijā
kamēr lasītlīnija;
darīt
# izdrukājiet līniju
izmest ārā $ līnija
darīts<$ faila nosaukums

Izeja:

Palaidiet tālāk norādītās komandas.

$kaķishardware.txt
$bashreadfile.sh

Šeit pirmā komanda izdrukās faila saturu, hardware.txt neizpildot bash skriptu, un otrā komanda izpildīs skriptu readfile.sh un divas reizes izdrukājiet faila saturu, izmantojot `kaķis` komandu un `lasīt` komandu ar while cilpu. Jūs varat apmeklēt šo apmācība lai uzzinātu vairāk par faila lasīšanu pa rindām.

Failu rakstīšana bash

Izveidojiet bash failu ar šādu skriptu, lai jaunā failā ierakstītu jaunu saturu un pievienotu tajā esošos datus.

writefile.sh

#!/bin/bash

izmest ārā 'Ievadiet tekstu'
#Lasīt virknes datus
lasītstr1
#Pievienojiet failā ievades datus pirmo reizi
izmest ārā $ str1 >test.txt

izmest ārā 'Ievadiet citu tekstu'
#Izlasiet citus virknes datus
lasītstr2
#Pievienojiet ievades datus faila beigās
izmest ārā $ str2 >>test.txt

#Parādiet visu faila saturu
izmest ārā ``kaķistest.txt``

Izeja:

Palaidiet skriptu.

$bashwritefile.sh

Pēc skripta palaišanas parādīsies šāda izvade.

Iet uz augšu

Caurules

Pipe tiek izmantots, lai novirzītu jebkuru komandu izvadi uz citu komandu ievadi. To var izmantot starp dažāda veida bash komandām, lai ģenerētu konkrētu rezultātu. Standarta ieeja ir savienota ar standarta izvadi Linux caur cauruli. Lai iegūtu vēlamo izvadi, komanda jāiestata secīgi ar caurules (|) simbolu. Divas vai vairākas komandas var izpildīt kopā vienā komandā, izmantojot cauruli. Lai veiktu vienu un to pašu uzdevumu, jums ir jāizpilda vairākas komandas vairākās rindās bez caurules. Tātad caurules izmantošana ir ļoti izdevīga, lai īsā formā veiktu daudzu veidu uzdevumus.

sintakse:

komanda 1|komanda2|...

Šeit komandas1 izvade tiks nodota kā komandas2 ievade.

Šāda veida uzdevums tiek veikts ar cauruli un bez caurules šīs sadaļas nākamajā daļā. Pieņemsim, teksta fails ar nosaukumu marks.txt tiek dota ar šādiem datiem.

marks.txt

Asraf CSE-409 79

Kabir CSE-304 95

Keya PMP-101 67

Asraf CSE-304 88

Keya PMP-409 90

Asraf CSE-101 92

Jums ir jāsakārto faila dati un jānoskaidro un jāizdrukā viss studenta vārda ieraksts “K jā ' . Šo uzdevumu var veikt, palaižot vairākas komandas, neizmantojot cauruli, kas parādīta nākamajā sadaļā. Lai iegūtu vēlamo rezultātu, būs jāizpilda šādas komandas. Pirmā komanda sakārtos failu. Otrā komanda meklēs ierakstu “K jā ' izmantojot ` satvēriens `komandu un saglabāt izvadi temp.txt failu. Trešā komanda saskaitīs a kopējās rindas temp.txt failu, izmantojot 'wc' komandu.

$kārtotmarks.txt
$satvēriens 'Keya'marks.txt>temp.txt
$tualete -viņitemp.txt

Izeja:

Failā ir divi studenta ieraksti “Keya”. Tātad pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Jūs varat viegli apvienot iepriekš minētās trīs komandas un iegūt tādu pašu rezultātu, palaižot vienu komandu ar cauruli, kas parādīta nākamajā komandā. Lai iegūtu rezultātu, šeit nav nepieciešams pagaidu fails. Šeit iznākums ` kārtot Komanda tiks nodota kā ievads satvēriens 'komandu un' izvadi satvēriens komanda tiks nodota kā ievades avots 'wc' komandu.

$kārtotmarks.txt| satvēriens 'Keya' | tualete -viņi

Izeja:

Pēc tam, izpildot iepriekš minēto komandu, jūs iegūsit šādu izvadi, tāpat kā iepriekšējās komandas izvadi. Komandas iznākums būs 2.

Iet uz augšu

Secinājums:

Šajā apmācībā ir mēģināts apskatīt visnoderīgākās un nepieciešamākās bash skriptu valodas tēmas. Ceru, ka lasītājs gūs labumu pēc šīs apmācības izlasīšanas un varēs efektīvāk uzrakstīt bash skriptu.