Bash skriptēšana — If paziņojums

Bash skriptēšana — If paziņojums

Bash ir komandu valodu tulks. Tas ir noklusējuma komandu tulks lielākajā daļā GNU/ Linux sistēmas un ir plaši pieejams dažādās operētājsistēmās. Nosaukums ir saīsinājums vārdam Bourne-Again SHell . Skriptēšana ļauj izpildīt instrukcijas, kuras citādi tiktu izpildītas pa vienai interaktīvi.

Šajā rakstā mēs apspriedīsim par if paziņojumu bash skriptēšanā.

Bash If paziņojums

Pamata sintakse “if” priekšrakstam Bash valodā:

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi 

Paskaidrojums:

  • if [ condition ]; then> : šī rinda sāk if priekšrakstu, kur condition> ir izteiksme, kas tiek novērtēta. Ja nosacījums ir patiess, kods iekšpusē then> bloks tiek izpildīts.
  • # code to be executed if the condition is true> : Šis ir koda bloks, kas tiek izpildīts, ja nosacījums, kas norādīts paziņojumā if, ir patiess.
  • fi> : Tas iezīmē if priekšraksta beigas.

Bash skripts, lai noteiktu, vai skaitlis ir pāra

Tālāk ir sniegts piemērs skripts kas liks ievadīt skaitli un pēc tam pārbaudīs, vai dotais skaitlis ir pāra.

#!/usr/bin/bash
# Šis skripts liek lietotājam ievadīt skaitli, pārbauda, ​​vai tas ir pāra, un attiecīgi izdrukā ziņojumu.
# Lūdziet lietotājam ievadīt numuru

echo -n Ievadiet numuru:
lasīt x

# Pārbaudiet, vai ievadītais skaitlis ir pāra skaitlis
ja [ $((x % 2)) == 0 ]; tad
atbalss Skaitlis ir pāra
būt

Paskaidrojums:

  1. #!/usr/bin/bash> : šī ir shebang līnija, kas norāda ceļu uz Bash tulku. Tas norāda, ka skripts jāizpilda, izmantojot Bash.
  2. echo -n 'Enter Number: '> : Šī rinda drukā uzvedni Ievadiet numuru: bez jaunās rindas rakstzīmes ( -n> variants). Tas gaida, līdz lietotājs ievadīs numuru.
  3. read x> : nolasa lietotāja ievadīto informāciju un piešķir to mainīgajam x> .
  4. if [ $((x % 2)) == 0 ]; then> : šī rinda pārbauda, ​​vai ievadītā skaitļa dalījuma atlikums ( x> ) ar 2 ir vienāds ar 0. Ja patiess, tas nozīmē, ka skaitlis ir pāra.
  5. echo 'Number is Even'> : ja nosacījums if priekšrakstā ir patiess, šī rinda konsolē drukā Skaitlis ir pāra.

Izvade:

Bash skripts, lai noteiktu, vai skaitlis ir pāra

Bash skripts, lai noteiktu, vai skaitlis ir pāra

Piezīme: Skripts neapstrādā gadījumus, kad lietotājs ievada vērtību, kas nav skaitliska. Ja lietotājs ievada vērtību, kas nav skaitliska, tas var radīt negaidītus rezultātus. Lai to atrisinātu, var pievienot papildu ievades validāciju.

Bash if-else paziņojums

Bash priekšraksta “if-else” pamata sintakse:

#!/bin/bash

ja [nosacījums]; tad

# kods, kas jāizpilda, ja nosacījums ir patiess

cits

# kods, kas jāizpilda, ja nosacījums ir nepatiess

būt

Paskaidrojums:

  • if [ condition ]; then> : šī rinda sāk if priekšrakstu, kur condition> ir izteiksme, kas tiek novērtēta. Ja nosacījums ir patiess, kods iekšpusē then> bloks tiek izpildīts.
  • # code to be executed if the condition is true> : Šis ir koda bloks, kas tiek izpildīts, ja nosacījums, kas norādīts paziņojumā if, ir patiess.
  • else> : ja nosacījums if paziņojumā ir nepatiess, kods iekšpusē else> bloks tiek izpildīts.
  • # code to be executed if the condition is false> : Šis ir koda bloks, kas tiek izpildīts, ja if paziņojumā norādītais nosacījums ir nepatiess.
  • fi> : tas iezīmē if-else priekšraksta beigas.

Kā atrast lielāku skaitu, izmantojot if-else paziņojumus Bash skriptā?

Šeit ir Bash skripts, lai uzzinātu lielāku skaitu, izmantojot if-else paziņojumu Bash skriptā.

#!/bin/bash
# Lūdziet lietotājam ievadīt x vērtību

echo -n Ievadiet x vērtību:
lasīt x

ja [ $x -gt 5 ]; tad
echo x ir lielāks par 5
cits
echo x nav lielāks par 5
būt

Paskaidrojums:

  • #!/bin/bash : šo rindiņu sauc par shebang, un tā norāda, ka skripts ir jāinterpretē un jāizpilda, izmantojot Bash čaulu.
  • # Lūdziet lietotājam ievadīt x vērtību : Šis ir komentārs, kas norāda nākamās rindas mērķi.
  • echo -n Ievadiet x vērtību: : Šajā rindā tiek drukāts ziņojums Ievadiet x: vērtību terminālī, nepārejot uz nākamo rindiņu. Lietotājs ievadīs savu vērtību tajā pašā rindā.
  • lasīt x : šī rinda nolasa lietotāja ievadīto informāciju un piešķir to mainīgajam “x”.
  • ja [ $x -gt 5 ]; tad : Šis ir if paziņojums, kas pārbauda, ​​vai “x” vērtība ir lielāka par 5.
    • $x : apzīmē mainīgā “x” vērtību.
    • -gt : apzīmē lielāku nekā skaitliskās salīdzināšanas kontekstā.
    • 5 : vērtība, kas tiek salīdzināta ar.
  • echo x ir lielāks par 5 : Ja nosacījums iepriekšējā rindā ir patiess, šī rinda tiks izpildīta, drukājot x terminālī ir lielāks par 5.
  • cits : ja nosacījums paziņojumā if ir nepatiess, skripts pāriet uz else bloku.
  • echo x nav lielāks par 5 : Šī rinda tiek izpildīta, ja “x” vērtība nav lielāka par 5, drukājot x terminālī nav lielāka par 5.
  • būt : tas nozīmē bloka if-else beigas.

Izvade:

Lielāka skaita atrašana, izmantojot if-else

Lielāka skaita atrašana, izmantojot if-else

Bash if-elif-else paziņojums

The if-elif-else> paziņojums Bash tiek izmantots nosacījuma sazarošanai. Tas ļauj norādīt vairākus nosacījumus un izpildīt dažādus koda blokus, pamatojoties uz šo nosacījumu novērtējumu.

Paziņojuma 'if-elif-else' pamata sintakse valodā Bash:

#!/bin/bash

ja [ nosacījums1 ]; tad
# Kods jāizpilda, ja nosacījums1 ir patiess
elif [nosacījums2]; tad
# Kods jāizpilda, ja nosacījums2 ir patiess
elif [ nosacījums3 ]; tad
# Kods jāizpilda, ja nosacījums3 ir patiess
cits
# Kods jāizpilda, ja neviens no nosacījumiem nav patiess
būt

Paskaidrojums:

  • ja [ nosacījums1 ]; tad : Šis ir sākuma punkts if-elif-else> paziņojums, apgalvojums. Kods šajā blokā tiks izpildīts, ja condition1> ir patiess.
  • # Kods jāizpilda, ja nosacījums1 ir patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition1> ir patiess.
  • elif [ nosacījums2 ]; tad : Ja condition1> ir nepatiess, skripts pārbauda condition2> . Ja condition2> ir taisnība, tiek izpildīts kods šajā blokā.
  • # Kods jāizpilda, ja nosacījums2 ir patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition2> ir patiess.
  • elif [ nosacījums3 ]; tad : Ja abi condition1> un condition2> ir nepatiesi, skripts pārbauda condition3> . Ja condition3> ir taisnība, tiek izpildīts kods šajā blokā.
  • # Kods jāizpilda, ja nosacījums3 ir patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition3> ir patiess.
  • cits : ja neviens no iepriekšējiem nosacījumiem (nosacījums1, nosacījums2, nosacījums3 utt.) nav patiess, kods else> bloks tiek izpildīts.
  • # Kods jāizpilda, ja neviens no nosacījumiem nav patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja neviens no nosacījumiem nav patiess.
  • būt : Tas iezīmē beigas if-elif-else> paziņojums, apgalvojums. Vārds fi ir rakstīts atpakaļ, un to izmanto, lai aizvērtu nosacītos blokus valodā Bash.

Kā noteikt, vai skaitlis ir pozitīvs, negatīvs vai nulle, izmantojot Bash paziņojumu “if-elif-else”?

Papildināsim kodu iepriekš minētajā piemērā, lai pievienotu nosacījumu nulles pārbaudei.

#!/bin/bash

# Lūdziet lietotājam ievadīt numuru

echo -n Ievadiet numuru:
lasīt num

ja [ $num -gt 0 ]; tad
echo $num ir pozitīvs skaitlis.
elif [ $num -lt 0 ]; tad
echo $num ir negatīvs skaitlis.
cits
echo $num ir nulle.
būt

Paskaidrojums:

  • #!/bin/bash : šī rindiņa ir shebang, kas norāda, ka skripts ir jāinterpretē un jāizpilda, izmantojot Bash čaulu.
  • # Lūdziet lietotājam ievadīt numuru : Šis ir komentārs, kas norāda nākamās rindas mērķi.
  • echo -n Ievadiet numuru: : Šajā rindā tiek drukāts ziņojums Ievadiet numuru: uz termināli, nepārejot uz nākamo rindiņu. Lietotājs tajā pašā rindā ievadīs savu numuru.
  • lasīt num : šī rinda nolasa lietotāja ievadīto informāciju un piešķir to mainīgajam “num”.
  • ja [ $num -gt 0 ]; tad : Šis ir if paziņojums, kas pārbauda, ​​vai “num” vērtība ir lielāka par 0.
    • $num : apzīmē mainīgā “num” vērtību.
    • -gt : apzīmē lielāku nekā skaitliskās salīdzināšanas kontekstā.
    • 0 : vērtība, kas tiek salīdzināta ar.
  • echo $num ir pozitīvs skaitlis. : Ja nosacījums iepriekšējā rindā ir patiess, šī rinda tiks izpildīta, drukājot $num ir pozitīvs skaitlis. uz termināli.
  • elif [ $num -lt 0 ]; tad : ja nosacījums paziņojumā if ir nepatiess, šī rinda pārbauda, ​​vai “num” vērtība ir mazāka par 0.
    • $num : apzīmē mainīgā “num” vērtību.
    • -lt : apzīmē mazāk nekā skaitliskās salīdzināšanas kontekstā.
    • 0 : vērtība, kas tiek salīdzināta ar.
  • echo $num ir negatīvs skaitlis. : Ja nosacījums elif paziņojumā ir patiess, šī rinda tiks izpildīta, drukājot $num ir negatīvs skaitlis. uz termināli.
  • cits : ja gan nosacījumi if un elif priekšrakstos ir nepatiesi, skripts pāriet uz else bloku.
  • echo $num ir nulle. : Šī rinda tiek izpildīta, ja 'num' vērtība nav lielāka par 0 un nav mazāka par 0, drukājot $num ir nulle. uz termināli.
  • būt : tas nozīmē bloka if-elif-else beigas.

Izvade:

ja skaitlis ir pozitīvs, negatīvs vai nulle, izmantojot “if-elif-else”.

ja skaitlis ir pozitīvs, negatīvs vai nulle, izmantojot “if-elif-else”.

Bash Nested if paziņojums

Programmā Bash varat izmantot ligzdotu if> paziņojumus, lai izveidotu sarežģītākas nosacījumu struktūras. Šeit ir ligzdotā sintakse if> paziņojums, apgalvojums:

#!/bin/bash

ja [ nosacījums1 ]; tad
# Kods jāizpilda, ja nosacījums1 ir patiess
ja [nosacījums2]; tad
# Kods jāizpilda, ja nosacījums2 ir patiess
cits
# Kods, kas jāizpilda, ja nosacījums2 ir nepatiess
būt
cits
# Kods, kas jāizpilda, ja nosacījums1 ir nepatiess
būt

Paskaidrojums:

  • ja [ nosacījums1 ]; tad : Tas ir ārējais if> paziņojums, apgalvojums. Ja condition1> ir taisnība, tiek izpildīts kods šajā blokā.
  • # Kods jāizpilda, ja nosacījums1 ir patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition1> ir patiess.
  • ja [nosacījums2]; tad : ārējā bloka iekšpusē if> apgalvojums, ir iekšējs if> paziņojums, apgalvojums. Ja condition2> ir taisnība, tiek izpildīts kods šajā blokā.
  • # Kods jāizpilda, ja nosacījums2 ir patiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition2> ir patiess.
  • cits : Ja condition2> iekšējā if> paziņojums ir nepatiess, kods iekšpusē else> iekšējā bloks if> paziņojums tiek izpildīts.
  • # Kods, kas jāizpilda, ja nosacījums2 ir nepatiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition2> ir nepatiess.
  • būt : Tas iezīmē iekšējās daļas beigas if> paziņojums, apgalvojums.
  • cits : Ja condition1> ārējā if> paziņojums ir nepatiess, kods iekšpusē else> ārējā bloks if> paziņojums tiek izpildīts.
  • # Kods, kas jāizpilda, ja nosacījums1 ir nepatiess : aizstājiet šo komentāru ar faktisko kodu, kuru vēlaties palaist, ja condition1> ir nepatiess.
  • būt : Tas iezīmē ārējās daļas beigas if> paziņojums, apgalvojums.

Kā pārbaudīt vecuma atbilstību un vecāka gadagājuma pilsoņu priekšrocības programmā Bash, izmantojot ligzdotas If paziņojumus?

Nedaudz pielabosim iepriekš minēto kodu, lai izmantotu ligzdotu-if.

#!/bin/bash
# Lūdziet lietotājam ievadīt vecumu
echo -n Ievadiet savu vecumu:
lasīt vecumu

ja [ $vecums -ge 18 ]; tad
echo Jums ir tiesības balsot.
ja [ $vecums -ge 65 ]; tad
echo Jums ir tiesības saņemt arī pensionāra pabalstus.
cits
echo Jūs vēl nevarat saņemt pensionāra pabalstus.
būt
cits
echo Jūs vēl neesat tiesīgs balsot.
būt

Paskaidrojums:

  • #!/bin/bash : šī rindiņa ir shebang, kas norāda, ka skripts ir jāinterpretē un jāizpilda, izmantojot Bash čaulu.
  • # Lūdziet lietotājam ievadīt vecumu : Šis ir komentārs, kas norāda nākamās rindas mērķi.
  • echo -n Ievadiet savu vecumu: : Šajā rindā tiek drukāts ziņojums Ievadiet savu vecumu: uz termināli, nepārejot uz nākamo rindiņu. Lietotājs tajā pašā rindā ievadīs savu vecumu.
  • lasīt vecumu : šī rinda nolasa lietotāja ievadīto informāciju un piešķir to mainīgajam “vecums”.
  • ja [ $vecums -ge 18 ]; tad : Šis ir if paziņojums, kas pārbauda, ​​vai “vecuma” vērtība ir lielāka vai vienāda ar 18.
    • $vecums : apzīmē mainīgā “age” vērtību.
    • -ge : skaitliskās salīdzināšanas kontekstā apzīmē lielāku vai vienādu ar.
    • 18 : vērtība, kas tiek salīdzināta ar.
  • echo Jums ir tiesības balsot. : Ja nosacījums iepriekšējā rindā ir patiess, šī rinda tiks izpildīta, drukājot Jūs esat tiesīgs balsot. uz termināli.
  • ja [ $vecums -ge 65 ]; tad : pirmajā if blokā šis ir vēl viens if paziņojums, kas pārbauda, ​​vai “vecuma” vērtība ir lielāka vai vienāda ar 65.
    • $vecums : apzīmē mainīgā “age” vērtību.
    • -ge : skaitliskās salīdzināšanas kontekstā apzīmē lielāku vai vienādu ar.
    • 65 : vērtība, kas tiek salīdzināta ar.
  • echo Jums ir tiesības saņemt arī pensionāra pabalstus. : Ja nosacījums iekšējā if paziņojumā ir patiess, šī rindiņa tiks izpildīta, izdrukājot Jūs varat arī saņemt pensionāra pabalstus. uz termināli.
  • cits : ja nosacījums iekšējā if priekšrakstā ir nepatiess, skripts pāriet uz else bloku ārējā if paziņojumā.
    • echo Jūs vēl nevarat saņemt pensionāra pabalstus. : Šī rinda tiek izpildīta, ja vērtība ‘vecums’ nav lielāka vai vienāda ar 65 gadiem, drukāšana Jums vēl nav tiesību uz pensionāra pabalstu. uz termināli.
  • būt : tas nozīmē iekšējā ja-cits bloka beigas.
  • cits : ja nosacījums ārējā if paziņojumā ir nepatiess, skripts pāriet uz else bloku.
    • echo Jūs vēl neesat tiesīgs balsot. : Šī rinda tiek izpildīta, ja vērtība ‘vecums’ nav lielāka vai vienāda ar 18, drukāšana Jūs vēl neesat tiesīgs balsot. uz termināli.
  • būt : tas nozīmē ārējā ja-cits bloka beigas.

Izvade:

ligzdots-ja, izmantojot Bash

ligzdots-ja, izmantojot Bash

Bieži uzdotie jautājumi un dažas piezīmes par stāvokli CONDITION

Šīs ir dažas lietas, kas jāpatur prātā, rakstot testa nosacījumus bash.

1. Nodrošiniet atstarpes starp iekavām un faktisko pārbaudes/salīdzinājuma paziņojumu.

Piemēram, tālāk norādītais nedarbosies.

if [$x==0] 

Bašs ziņos par kļūdu par a trūkst ] .

2. Vienmēr pabeidziet rindu pirms jauna atslēgvārda pievienošanas, piemēram, tad.

Ja, tad else, elif un fi ir čaulas atslēgvārdi, tas nozīmē, ka tos nevar izmantot vienā rindā. Ielieciet a ; starp iepriekšējo paziņojumu un atslēgvārdu vai sāciet jaunu rindiņu ar atslēgvārdu.

3. Lai vienā priekšrakstā izmantotu daudzus nosacījumus, izmantojiet loģiskos operatorus.

Mēs varam izmantot loģiskos AND(&&) vai loģiskos VAI(||) operatorus, lai izmantotu vairākus nosacījumus.

Piemēram:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi 

Šeit -ge ir saīsinājums lielākam par vai vienāds ar

4. Kā salīdzināt virknes Bash if paziņojumā?

Izmantojiet ` => `> operators virknes vienlīdzībai un ` !=`> par nevienlīdzību.

Piemēram:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi 

5. Vai Bash if priekšrakstos var izmantot regulārās izteiksmes?

Jā, jūs varat izmantot ` [[ ... ]]`> konstruēt uzlabotai virkņu saskaņošanai ar regulārām izteiksmēm.

Piemēram:

if [[ '$string' =~ ^[0-9]+$ ]]; then  # Code to execute if the string contains only numbers else  # Code to execute if the string does not contain only numbers fi 

6. Kā pārbaudīt, vai fails eksistē Bash skriptā, izmantojot if priekšrakstu?

Varat izmantot ` -e`> karodziņš šādā stāvoklī:

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi 

7. Kāda ir if-else priekšraksta sintakse Bash skriptēšanā?

Pamata sintakse an 'ja-cits'. paziņojums Bash skriptā ir:

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi 

8. Kā Bash skriptā izmantot elif paziņojumu?

` elif`> paziņojums tiek izmantots, lai pārbaudītu papildu nosacījumus, ja sākuma if> nosacījums ir nepatiess.

Šeit ir piemērs:

if [ condition1 ]; then  # Code to execute if condition1 is true elif [ condition2 ]; then  # Code to execute if condition2 is true else  # Code to execute if none of the conditions are true fi 

9. Kā Bash if priekšrakstos var izmantot loģiskos operatorus (AND, OR)?

Varat izmantot ` -a`> loģiskajiem UN un ` -o`> loģiskajam VAI.

Piemēram:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi 

Secinājums

Šajā rakstā mēs apspriedām Bash skriptēšanu, kas ir kā ļoti noderīgs rīks, lai jūsu dators veiktu darbības automātiski. Šis raksts mums mācīja par if paziņojumu Bash, kas ir kā lēmumu pieņēmējs skriptos. Mēs uzzinājām pamatus, redzējām piemērus, piemēram, pārbaudot, vai skaitlis ir pāra, vai noskaidrojām, vai kāds var balsot, un pat izpētījām brīnišķīgākas lietas, piemēram, daudzu nosacījumu risināšanu vai apgalvojumu ievietošanu viens otrā. Rakstā tika sniegti skaidri paskaidrojumi, piemēri un atbildes uz bieži uzdotajiem jautājumiem, lai palīdzētu mums labāk izmantot Bash skriptus. Galvenais ir būt uzmanīgiem ar tādām detaļām kā atstarpes un īpašie noteikumi, lai mūsu skripti darbotos nevainojami un atvieglotu uzdevumu izpildi datorā.