Šajā tēmā mēs sapratīsim, kā to izmantot ja paziņojumi Bash skriptos, lai mūsu automatizētie uzdevumi tiktu pabeigti.
Bash, ja paziņojumi ir izdevīgi. Tos izmanto, lai izpildītu nosacījumus uzdevumus secīgā paziņojumu izpildes plūsmā. Ja paziņojumi parasti ļauj mums pieņemt lēmumus mūsu Bash skriptos. Tie palīdz mums izlemt, vai palaist kodu daļu, pamatojoties uz nosacījumu, ko varam iestatīt.
Pamata ja paziņojumi
Pamata if paziņojums nosaka, ka, ja konkrēts nosacījums ir patiess, izpildiet tikai noteiktu darbību kopu. Ja tā nav taisnība, tad neveiciet šīs darbības. Ja paziņojums ir balstīts uz šādu formātu:
Sintakse
if [ expression ]; then statements fi
Paziņojums starp tad un būt (Ja atpakaļ) tiks izpildīts tikai tad, ja izteiksme (starp kvadrātiekavās) ir patiesa.
Piezīme:Ievērojiet atstarpes, kas izmantotas pirmajā rindā, un semikolu pirmās rindas beigās; abi ir obligāti jāizmanto.Ja nosacījuma paziņojumsbeidzas arbūt.
- Vairāku nosacījumu izmantošanai ar operatoru UN:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Vairāku nosacījumu izmantošanai ar operatoru VAI:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Saliktām izteiksmēm ar operatoriem UN un VAI mēs varam izmantot šādu sintaksi:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Tālāk ir sniegti daži piemēri, kas parāda if priekšraksta lietošanu:
1. piemērs
Šajā piemērā ņemiet lietotāja ievadīto jebkuru skaitli un pārbaudiet, vai vērtība ir lielāka par 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Izvade
ssh pilna forma
Ja ievadīsim skaitli 159, izvade izskatīsies šādi:
2. piemērs
Šajā piemērā mēs demonstrējam lietojumu ja paziņojums ar vienkāršu divu virkņu salīdzināšanas scenāriju:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Izvade
log4j
3. piemērs
Šajā piemērā mēs parādām, kā salīdzināt skaitļus, izmantojot if priekšrakstu:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Izvade
4. piemērs
Šajā piemērā mēs definēsim, kā izmantot operatoru UN, lai ietvertu vairākus nosacījumus izteiksmē if:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Izvade
5. piemērs
Šajā piemērā mēs definēsim, kā izmantot operatoru VAI, lai ietvertu vairākus nosacījumus izteiksmē if:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Izvade
6. piemērs
Šajā piemērā mēs definēsim, kā izmantot UN un VAI, lai ietvertu vairākus nosacījumus izteiksmē if:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Izvade
iphone emocijzīmes operētājsistēmā Android
Opcijas If paziņojumam Bash skriptēšanā
Ja paziņojumā ir daudz iespēju, lai veiktu konkrētu uzdevumu. Šīs opcijas var izmantot failu operācijām, virkņu darbībām utt. Tālāk ir norādītas dažas visbiežāk izmantotās opcijas:
Opcijas (operatori) | Apraksts |
---|---|
! IZTEIKSME | Lai pārbaudītu, vai EXPRESSION ir nepatiess. |
-n STRING | Lai pārbaudītu, vai STRING garums ir lielāks par nulli. |
-z STRING | Lai pārbaudītu, vai STRING garums ir nulle (t.i., tas ir tukšs) |
STRING1 == STRING2 | Lai pārbaudītu, vai STRING1 ir vienāds ar STRING2. |
STRING1 != STRING2 | Lai pārbaudītu, vai STRING1 nav vienāds ar STRING2. |
INTEGER1 -eq INTEGER2 | Lai pārbaudītu, vai INTEGER1 ir skaitliski vienāds ar INTEGER2. |
INTEGER1 -gt INTEGER2 | Lai pārbaudītu, vai INTEGER1 ir skaitliski lielāks par INTEGER2. |
INTEGER1 -lt INTEGER2 | Lai pārbaudītu, vai INTEGER1 ir skaitliski mazāks par INTEGER2. |
-d FAILS | Lai pārbaudītu, vai FILE pastāv un tas ir direktorijs. |
-e FAILS | Lai pārbaudītu, vai FILE pastāv. |
-r FAILS | Lai pārbaudītu, vai FILE pastāv un lasīšanas atļauja ir piešķirta. |
-s FILE | Lai pārbaudītu, vai FILE pastāv un tā lielums ir lielāks par nulli (tas nozīmē, ka tas nav tukšs). |
-w FAILS | Lai pārbaudītu, vai FILE pastāv un vai ir piešķirta rakstīšanas atļauja. |
x FILE | Lai pārbaudītu, vai FILE pastāv un izpildes atļauja ir piešķirta. |
Nested If
Bash skriptā varat lietot tik daudz “ja” paziņojumu, cik nepieciešams. Ir iespējams arī izmantot if paziņojumu cita 'if priekšraksta' iekšpusē. Tas ir pazīstams kā Nested If paziņojums.
Piemērs
Šajā piemērā mēs atradīsim “ja dots skaitlis ir lielāks par 50 un ja tas ir pāra skaitlis”, izmantojot ligzdotu if izteiksmi.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Izvade
Ja mēs ievadām argumenta vērtību kā 100, izvade izskatīsies šādi:
Secinājums
Šajā tēmā mēs apspriedām, kā mēs varētu izmantot nosacīto sazarojumu paziņojumu secīgā izpildes plūsmā ar bash if paziņojumu.