Kā izveidot Shell skriptu Linux
Shell ir operētājsistēmas saskarne. Tā pieņem komandas no lietotājiem un interpretē tās operētājsistēmā. Ja vēlaties kopā palaist vairākas komandas, varat to izdarīt, izveidojot čaulas skriptu. Shell skripti ir ļoti noderīgi, ja jums regulāri jāveic kāds uzdevums, piemēram, jāveido dublējums. Varat uzskaitīt šīs komandas un izpildīt tās visas, izmantojot tikai vienu skriptu. Apskatīsim, kā izveidot čaulas skriptu un palaist to operētājsistēmā Linux.
Shell skripta izveide
Piesakieties savā Linux mašīnā un atveriet termināli, dodieties uz mapi, kurā vēlaties saglabāt čaulas skriptu. Shell skripti beidzas ar paplašinājumu .sh. Izveidosim savu pirmo čaulas skriptu. Ieraksti
touch script.sh
Tagad šis skripta fails pēc noklusējuma nav izpildāms, mums ir jāpiešķir izpildāmā atļauja šim failam. Ieraksti
chmod +x script.sh
Tagad šim čaulas skriptam pievienosim dažas komandas. Atveriet šo čaulas skriptu ar jebkuru teksta redaktoru pēc jūsu izvēles (uz komandrindas vai GUI bāzes) un pievienojiet dažas komandas. Mēs izmantosim nano. Ieraksti
nano script.sh
Pievienojiet šādas komandas, lai pārbaudītu šo čaulas skriptu
echo This is my first shell script touch testfile ls echo End of my shell script
Saglabājiet izmaiņas un palaidiet čaulas skriptu, ierakstot
./script.sh
Iepriekš minēto darbību ekrānuzņēmums
Var redzēt, ka tas izpildīja visas norādītās komandas.
Komentāri čaulas skriptā
Jebkura rinda, kas čaulas skriptā sākas ar #, tiek uzskatīta par komentāru, un apvalks to ignorē izpildes laikā, izņemot shebang rindu, ko mēs redzēsim vēlāk šajā rakstā. Apskatīsim piemēru. Tiek izveidots čaulas skripts ar šādu saturu.
# This is a comment echo Testing comments in shell script
Komentāri Shell skriptā
Var redzēt, komentārs tiek ignorēts.
Mainīgie Shell skriptā
Jā, Shell skripti atbalsta mainīgo lielumu izmantošanu, un mums nav jādefinē mainīgā tips tā deklarēšanas laikā. Ir divu veidu mainīgie:
- Sistēmas definētie mainīgie
- Lietotāja definēti mainīgie.
Sistēmas definētie mainīgie, saukti arī par vides mainīgajiem, parasti tiek rakstīti ar lielo burtu. Varat skatīt visus pašreizējos vides mainīgos, izmantojot komandu printenv. Lietotāja definētos mainīgos iestata lietotājs, un tie pastāv tikai skripta izpildes laikā. Varat definēt mainīgo, vienkārši ierakstot tā nosaukumu un piešķirot vērtību ar = zīmi, un piekļūt mainīgajam, pievienojot $ pirms mainīgā nosaukuma. Mainīgie ir parādīti nākamajā skripta piemērā.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name
Mainīgie Shell skriptā
Shell skripta tulka definēšana
Operētājsistēmā Linux ir pieejami daudzi apvalki, piemēram, The Bourne shell (sh), The Korn Shell (ksh) un GNU Bourne-Again Shell (bash). Skriptus, kas rakstīti sh čaulai, sauc par čaulas skriptiem, un tos var interpretēt gan ksh, gan bash apvalks. ksh un Bash ir uzlabotas sākotnējās sh čaulas versijas, un tām ir vairāk funkciju nekā sh. Bash parasti ir noklusējuma apvalks lielākajā daļā Linux izplatījumu, un skriptus, kas rakstīti īpaši bash apvalkam, sauc par bash skriptiem.
Varat norādīt, kuru čaulu skripts izmantos, pat ja skripts tiek izpildīts no cita čaulas termināļa. Lai to izdarītu, pievienojiet #! skripta faila augšpusē, kam seko izvēlētās čaulas absolūtais ceļš. Lai norādītu bash kā tulku, pievienojiet šādu rindiņu čaulas skripta augšpusē.
#!/bin/bash
Šo līniju sauc par shebanga līniju.
Piezīme: Tas darbosies tikai tad, ja jūsu sistēmā ir instalēts bash.
Salīdzināšanas operatori
Jūs varat salīdzināt divus mainīgos čaulas skriptēšanā. Mēs veicam šos salīdzinājumus, lai pieņemtu lēmumus, redzēsim, kā to izdarīt vēlāk šajā rakstā, bet pirms tam šeit ir saraksts ar dažiem salīdzināšanas operatoriem.
Veselu skaitļu salīdzinājums
| Operators | Apraksts |
|---|---|
| -ekv | ir vienāds ar |
| - ir | nav vienāds ar |
| -gt | ir labāks par |
| -ge | ir lielāks vai vienāds ar |
| -lt | ir mazāks par |
| - | ir mazāks vai vienāds ar |
Stīgu salīdzinājums
| Operators | Apraksts |
|---|---|
| == | ir vienāds ar |
| != | nav vienāds ar |
| < | ir mazāks par, ASCII alfabētiskā secībā |
| > | ir lielāks par, ASCII alfabētiskā secībā |
Mēs pievienojam pirms tam, jo tie ir jāaizpilda, ievadot [ ] konstrukciju. Tagad redzēsim, kur tie tiek izmantoti.
Nosacīti paziņojumi
Nosacījumu paziņojumi tiek izmantoti, lai izpildītu koda bloku tikai tad, ja ir izpildīti noteikti nosacījumi. Shell skripti atbalsta nosacījumu paziņojumu izmantošanu. Mēs izmantojam salīdzināšanas operatorus, lai pārbaudītu nosacījumus. Apskatīsim dažus nosacījumus.
Ja paziņojums
Tas pārbauda nosacījumu un, ja tas ir nosacīts patiess, tas izpilda komandas.
Sintakse
if [ condition ] then #statements fi
Apskatīsim piemēru.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi
.ja paziņojums
Ja-cits paziņojums
Paziņojumā if-else varat norādīt komandu kopu, kas jāpalaiž, ja nosacījums nav izpildīts.
Sintakse
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi
Apskatīsim piemēru
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi
.ja-cits paziņojums
Ir arī citi nosacīti apgalvojumi, par tiem var lasīt šeit .
Piezīme: Ierakstiet atstarpi aiz [ un pirms ], vienlaikus norādot nosacījumu, kas jāpārbauda, pretējā gadījumā tiks parādīta kļūda.
Cilpas
Izmantojot cilpas, komandu kopu var veikt atkal un atkal, līdz tiek izpildīts noteikts nosacījums. Apskatīsim dažas cilpas.
Kamēr cilpa
Tas sāk izpildīt norādītās komandas, ja nosacījums ir patiess, un atkārto tās, līdz nosacījums ir nepatiess.
Sintakse
while [ condition ] do #set of statements done
Apskatīsim piemēru.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done
Kamēr cilpa
Piešķirot to mainīgajam, mēs iekļaujam izteiksmes priekšrakstu `` ietvaros. Par komandu expr varat lasīt šeit.
Cilpai
For cilpā mainīgais atkārto vērtību sarakstu un beidzas, kad vairs nav vērtību, ko atkārtot.
Sintakse
for var in val1 val2 val3 do #statements done
Apskatīsim piemēru.
#!/bin/sh for var in 2 4 5 8 do echo $var done
cilpai
Sīkāk varat lasīt par cilpām šeit .
Pozicionālie argumenti
Pozicionālie argumenti ir argumenti vai vērtības, ko mēs nododam čaulas skriptam, izpildot skriptu. Tiem var piekļūt, izmantojot mainīgos $0, $1, $2 … $9. Turklāt uz tiem atsaucas ${10}, ${11} un tā tālāk. $# saglabā nodoto argumentu skaitu un $0 saglabā skripta nosaukumu. Apskatīsim piemēru, lai to visu saprastu.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'
Lai nodotu argumentus, vienkārši ierakstiet tos terminālī aiz skripta nosaukuma, kā parādīts zemāk.
Pozicionālie argumenti
Komandu izvades saglabāšana
Komandu izvadi var saglabāt mainīgā čaulas skriptā. Ir divi veidi, kā to izdarīt.
Sintakse
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`
Apskatīsim piemēru.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d
Komandu izvades saglabāšana
Iziet no čaulas komandu kodiem
Ikreiz, kad komanda beidzas un atgriež vadīklu vecākprocesam, tā atgriež izejas kodus no 0 līdz 255. Izejas kods 0 nozīmē, ka komanda bija veiksmīga, un jebkurš cits izejas kods nozīmē, ka komanda bija neveiksmīga. Varat skatīt izejas kodu pēc jebkuras komandas palaišanas, piekļūstot $? mainīgs. Skatiet tālāk redzamo piemēru.
čaulas komandas izejas kods
Varat manuāli iestatīt čaulas skripta izejas kodu. To var izmantot ar nosacījumu paziņojumiem, lai norādītu, vai skripta mērķis ir sasniegts vai nē.
Piemērs
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi
čaulas komandas izejas kods