Bash ir komandrindas tulks vai Unix Shell, un to plaši izmanto GNU/Linux operētājsistēmā. To rakstījis Braiens Džans Fokss. Tas tiek izmantots kā noklusējuma pieteikšanās apvalks lielākajai daļai Linux izplatījumu. Skriptēšana tiek izmantota, lai automatizētu uzdevumu izpildi, lai cilvēkiem tie nebūtu jāveic atsevišķi. Bash skriptēšana ir lielisks veids, kā automatizēt dažāda veida uzdevumus sistēmā. Izstrādātāji var izvairīties no atkārtotu uzdevumu veikšanas, izmantojot bash skriptus.
Bash skriptēšana atbalsta mainīgos lielumus, nosacījumu paziņojumus un cilpas tāpat kā programmēšanas valodas. Tālāk ir norādītas dažas Bash skriptu lietojumprogrammas -
Satura rādītājs
- Bash skriptu lietojumprogrammas:
- Bash skriptu priekšrocības:
- Kā rakstīt Bash skriptus?
- Failu nosaukumi un atļaujas
- Mainīgie lielumi
- Ievade un izvade
- Funkcijas
- Lēmumu pieņemšana
- Stīgu un ciparu salīdzinājumi
Bash skriptu lietojumprogrammas:
- Manipulācijas ar failiem
- Regulāru uzdevumu izpilde, piemēram, dublēšanas darbība
- Automatizācija
Bash skriptu izmantošanas priekšrocības ir norādītas zemāk -
Bash skriptu priekšrocības:
- Tas ir vienkārši.
- Tas palīdz izvairīties no atkārtotu uzdevumu veikšanas
- Viegli izmantot
- Bieži veiktos uzdevumus var automatizēt
- Komandu secību var palaist kā vienu komandu.
Bash skriptu trūkumi ir norādīti zemāk -
Bash skriptu trūkumi:
- Jebkura kļūda rakstīšanas laikā var maksāt dārgi.
- Gandrīz katrai izpildītajai čaulas komandai tika palaists jauns process
- Lēns izpildes ātrums
- Saderības problēmas starp dažādām platformām
Kā rakstīt Bash skriptus?
Lai uzrakstītu Bash skriptu, mēs rīkojamies šādi:
- Pirmkārt, mēs izveidosim failu ar paplašinājumu .sh.
- Tālāk mēs tajā pierakstīsim bash skriptus
- Pēc tam mēs tai piešķirsim izpildes atļauju.
Lai izveidotu un rakstītu failu ar paplašinājumu .sh, mēs varam izmantot gedit teksta redaktors. Komanda tam būs -
gedit scriptname.sh>
Mūsu skripta faila pirmā rinda būs -
#!/bin/bash>
Tas pateiks, sistēmai izmantot Bash izpildei. Tad mēs varam rakstīt savus scenārijus.
Pierakstīsim tikai vienkāršu skriptu, kas terminālī izdrukās dažas rindiņas. Kods tam būs -
#!/bin/bash echo 'Hello, techcodeview.com'>
Tagad mēs saglabāsim failu un nodrošināsim tam izpildes atļauju. Lai to izdarītu, izmantojiet šādu komandu -
chmod +x scriptname.sh>
Tālāk, lai izpildītu šo skriptu, mēs izmantosim šādu komandu -
mysql saraksta lietotāji
./scriptname.sh>
Šeit ir termināļa apvalka attēla attēlojums pēc iepriekš minēto komandu izpildes šādi:
Šeit skripta faila nosaukums ir gfg.sh.
Tagad mēs varam arī rakstīt sarežģītākas komandas, izmantojot Bash skriptus. Tālāk ir sniegts piemērs, kurā mēs izmantojam nosacījumu paziņojumu -
Skripta piemērs:
preity zinta
#!/bin/bash Age=17 if [ '$Age' -ge 18 ]; then echo 'You can vote' else echo 'You cannot vote' fi>
Izvade:
You cannot vote>
Šeit ir termināļa apvalka attēla attēlojums pēc iepriekš minētā skripta izpildes šādi:
Iepriekš minētajā veidā mēs varam izpildīt vairākas Bash komandas vienlaikus.
Tagad apskatīsim citus svarīgus jēdzienus, kas saistīti ar Bash skriptēšanu.
Failu nosaukumi un atļaujas
Iepriekš minētajā piemērā mēs esam saglabājuši failu, izmantojot gfg.sh nosaukumu un arī sniegto izpildes atļauju, izmantojot chmod komandu. Tagad sapratīsim, kāpēc mēs to darījām.
Rakstot bash skriptus, mums ir jāsaglabā fails ar paplašinājumu .sh, lai Linux sistēma varētu to izpildīt. Kad mēs pirmo reizi izveidojam failu ar paplašinājumu .sh, tam nav nekādas izpildes atļaujas, un bez izpildes atļaujas skripts nedarbosies. Tāpēc mums ir jānodrošina izpildes atļauja, izmantojot chmod komandu.
Bash skripta faila nosaukums var būt jebkas, izņemot pēc vienošanās, skripta faila nosaukšanai ieteicams izmantot čūskas reģistru ( my_bash_script.sh ) vai defises ( my-bash-script.sh ).
Mainīgie lielumi
Bash skriptēšanā varam izmantot mainīgos. Tālāk ir sniegts programmas paraugs, lai izprastu mainīgo lielumu izmantošanu Bash skriptos.
Skripta piemērs:
Name='SATYAJIT GHOSH' Age=20 echo 'The name is $Name and Age is $Age'>
Mainīgo lielumu izvade:
The name is SATYAJIT GHOSH and Age is 20>
Tātad, šeit ir deklarēti divi mainīgie Vārds un vēl viens ir Vecums. Šie mainīgie ir pieejami, izmantojot $Name un $Age. Tas nozīmē, ka mēs varam deklarēt mainīgo bash skriptā, izmantojot VariableName=Vērtība un var tai piekļūt, izmantojot $VariableName. Šeit ir termināļa apvalka attēla attēlojums pēc iepriekš minētā skripta izpildes šādi:
Bash skriptēšanā ir divu veidu mainīgie. Parasti, ja mainīgais ir deklarēts funkcijā, tad tas parasti ir a vietējais mainīgais un, ja tas ir deklarēts ārpusē, tad tas ir a globālais mainīgais . Bash skripta gadījumā šī koncepcija ir nedaudz atšķirīga, šeit jebkurš mainīgais neatkarīgi no tā, vai tas pēc noklusējuma ir ierakstīts funkcijā vai ārpus funkcijas, ir globāls mainīgais. Ja mēs vēlamies izveidot vietējo mainīgo, mums ir jāizmanto atslēgvārds local.
Piezīme: Labākā prakse ir vienmēr funkcijā izmantot lokālo mainīgo, lai izvairītos no nevajadzīgas neskaidrības.
Tā paša piemērs ir sniegts zemāk -
Skripta piemērs:
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'> Vietējo un globālo mainīgo izvade:
The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>
Šajā iepriekš minētajā piemērā var2 ir lokāls mainīgais, tāpēc, kad mēs tam piekļūstam no funkcijas, tas darbojas labi, bet, mēģinot tai piekļūt ārpus funkcijas, tas izvadā dod mums tukšu rezultātu.
No otras puses, atšķirībā no programmēšanas valodām, lai gan var3 ir definēts funkcijā, tas tomēr darbojas kā globāls mainīgais un tam var piekļūt ārpus funkcijas. Zemāk ir termināļa čaulas attēlojums pēc skripta izpildes -
Ievade un izvade
Ievade un izvade ir čaulas skriptēšanas pamatjēdzieni. Skriptam var būt viena vai vairākas ievades, un tas var arī radīt nulli vai vairākas izejas. Tas pat var radīt dažas kļūdas. Sapratīsim to ar piemēru -
savienojuma java virkne
Skripta piemērs:
echo 'Enter filename' read filename if [ -e $filename ] then echo '$filename is exits on the directory' cat $filename else cat>$filename echo 'Fails izveidots' fi>
Ievades un izvades izvade:
Pirmo reizi:
Enter filename geeks.txt Hello Geek File created>
Otro reizi:
Enter filename geeks.txt geeks.txt is exits on the directory Hello Geek>
Tātad šajā iepriekš minētajā piemērā pirmo reizi skripts nevarēja atrast nevienu failu ar šo faila nosaukumu, un tiek izpildīts cits bloks. Tas izveidoja failu un ievietoja tajā dažus datus. Kad mēs to palaižam otrreiz ar tādu pašu faila nosaukumu, tas atrod failu. Tātad, vai tiek izpildīts if bloks un tiek parādīts faila saturs. Tiek ievadīta faila satura nolasīšana, un pirmo reizi datu ievietošana failā tiek uzskatīta par izvadi. Šeit mēs esam izmantojuši > satura glabāšanai failā. The > pāradresācijai tiek izmantots apzīmējums stdout uz failu. No otras puses, mēs varam izmantot 2> apzīmējums, lai novirzītu stderr, un &> lai novirzītu gan stdout, gan stderr.
Zemāk ir termināļa čaulas attēla attēlojums pēc šāda skripta izpildes -
Funkcijas
Programmēšanā funkcija ir koda bloks, kas veic dažus uzdevumus, un uzdevumu veikšanai to var izsaukt vairākas reizes. Vienkāršāko funkcijas izmantošanas piemēru Bash skriptēšanā var sniegt kā -
Skripta piemērs:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction> Funkciju izvade:
Hello World from techcodeview.com>
Iepriekš minētajā piemērā parādīta funkcija, kas izsauc kaut ko izdrukā.
Tātad pamata sintakse funkciju rakstīšanai Bash skriptā būs -
Funkciju sintakse:
#for defining function_name(){ commands ..... } function_name # for calling> Bez tam mums var būt arī funkcijas ar nosūtāmajiem argumentiem un atgriešanas vērtībām.
Lēmumu pieņemšana
Programmēšanā lēmumu pieņemšana ir viens no svarīgākajiem jēdzieniem. Programmētājs nodrošina vienu vai vairākus nosacījumus koda bloka izpildei. Ja nosacījumi ir izpildīti, šie kodu bloki tiek izpildīti tikai.
Shell skriptēšanā tiek izmantoti divu veidu lēmumu pieņemšanas paziņojumi. Viņi ir -
java kolekcija
1. Ja-cits paziņojums:
Ja citādi paziņojums ir nosacīts paziņojums. To var izmantot, lai izpildītu divus dažādus kodus atkarībā no tā, vai dotais nosacījums ir izpildīts vai nē.
Paziņojumā if-else ir dažas šķirnes. Viņi ir -
- ja-fi
- ja-citādi-fi
- ja-elif-cits-fi
- ligzdots if-else
Vienkāršākā sintakse būs:
If-else priekšraksta sintakse:
if [ expression ]; then statements fi>
Skripta piemērs:
Name='Satyajit' if [ '$Name' = 'Satyajit' ]; then echo 'His name is Satyajit. It is true.' fi>
Ja-cits paziņojuma izvade:
His name is Satyajit. It is true.>
Iepriekš minētajā piemērā nosacījuma pārbaudes laikā nosaukums atbilst, un nosacījums kļūst patiess. Tādējādi tiek izpildīts koda bloks, kas atrodas blokā if. Ja nosaukums nesakrīt, tam nebūs izvades. Zemāk ir termināļa čaulas attēla attēlojums pēc šāda skripta izpildes -
2. case-sac paziņojums:
case-sac pamatā darbojas tāpat kā slēdža paziņojums programmēšanā. Dažreiz, ja mums ir jāpārbauda vairāki nosacījumi, if paziņojumu lietošana var kļūt sarežģīta. Tajos brīžos mēs varam izmantot case-sac paziņojumu. Sintakse būs -
nemainīgs saraksts
Case-sac paziņojuma sintakse:
case $var in Pattern 1) Statement 1;; Pattern n) Statement n;; esac>
Skripta piemērs:
Name='Satyajit' case '$Name' in #case 1 'Rajib') echo 'Profession : Software Engineer' ;; #case 2 'Vikas') echo 'Profession : Web Developer' ;; #case 3 'Satyajit') echo 'Profession : Technical Content Writer' ;; esac>
Case-sac paziņojuma izvade:
Profession : Technical Content Writer>
Iepriekš minētajā piemērā priekšraksts case-sac izpildīja paziņojumu, kas ir daļa no atbilstošā modeļa šeit “Vārds”. Zemāk ir termināļa čaulas attēla attēlojums pēc šāda skripta izpildes -
Stīgu un ciparu salīdzinājumi
Virkņu salīdzināšana nozīmē, ka čaulas skriptēšanā mēs varam pieņemt lēmumus, veicot salīdzinājumus arī virknēs. Šeit ir aprakstoša tabula ar visiem operatoriem -
| Operators | Apraksts |
|---|---|
| == | Atgriež patieso vērtību, ja virknes ir vienādas |
| != | Atgriež patieso, ja virknes nav vienādas |
| -n | Atgriež vērtību True, ja pārbaudāmā virkne nav nulles vērtība |
| -Ar | Atgriež vērtību True, ja pārbaudāmā virkne ir nulle |
Aritmētiskos operatorus izmanto, lai pārbaudītu aritmētiskos nosacījumus. Patīk mazāks par, lielāks par, vienāds ar utt. Šeit ir aprakstoša tabula ar visiem operatoriem –
| Operators | Apraksts |
|---|---|
| -ekv | Vienlīdzīgi |
| -ge | Lielāks par vai vienāds |
| -gt | Lielāks nekā |
| - | Mazāks par vai vienāds |
| -lt | Mazāk nekā |
| - ir | Nav Vienlīdzīgs |
Zemāk ir vienkāršs piemērs tam pašam -
Skripta piemērs:
if [ 10 -eq 10 ];then echo 'Equal' fi if [ 'Geeks' == 'Geeks' ]; then echo 'same' #output else echo 'not same' fi>
Virkņu un ciparu salīdzinājumu izvade:
Equal same>
Šajā piemērā pirmais (-eq ) ir skaitlisks salīdzinājums, kas pārbauda vienlīdzību. Otrais ( == ) ir arī vienlīdzības pārbaude, bet virknēs. Zemāk ir termināļa čaulas attēla attēlojums pēc šāda skripta izpildes -

Vairāk par šo koncepciju uzzināsim nākamajos rakstos.
Secinājums
Šajā rakstā mēs apspriežam Bash skriptēšanu, kam ir būtiska loma uzdevumu automatizācijā Linux vidē. Kā komandrindas tulks Bash piedāvā vienkāršību un ērtu lietošanu izstrādātājiem, lai izveidotu skriptus, kas racionalizē ikdienas darbības, manipulē ar failiem un izpilda sarežģītus uzdevumus. Lai gan Bash skripti var uzlabot produktivitāti, izvairoties no atkārtotām darbībām un efektīvi izpildot komandu secības, tie ir saistīti arī ar tādiem apsvērumiem kā atļauju pārvaldība, mainīgo lielumu apstrāde un lēmumu pieņemšanas struktūru ieviešana. Apgūstot Bash skriptēšanu, lietotāji var izmantot tās spēku, lai optimizētu savu darbplūsmu un uzlabotu sistēmas administrēšanas uzdevumus Linux platformās.