Android

Bash if..else izjava

John Hockenberry: We are all designers

John Hockenberry: We are all designers

Sadržaj:

Anonim

Donošenje odluka jedan je od najosnovnijih koncepata računalnog programiranja. Kao i u bilo kojem drugom programskom jeziku, if , if..else , if..elif..else i ugniježđeno if izrazi u Bashu mogu koristiti za izvršavanje koda na temelju određenog uvjeta.

U ovom ćemo vam vodiču proći osnove Bash-a if izjave i pokazati vam kako ih koristiti u svojim skriptu ljuske.

if Izjava

Bash if uvjeti mogu imati različite oblike. Najosnovnije if izjava ima sljedeći oblik:

if TEST-COMMAND then STATEMENTS fi

Izjava if započinje s ključnom riječi if slijedi uvjetni izraz i then ključna riječ. Izjava se završava ključnom riječi fi .

Ako TEST-COMMAND ocijeni vrijednost True , STATEMENTS se izvršavaju. Ako TEST-COMMAND vrati False , ništa se ne dogodi, STATEMENTS se zanemaruju.

Općenito, dobra je praksa da uvijek uvlačite kôd i odvajate blokove koda praznim linijama. Većina ljudi odabire umetanje s 4 ili 2 prostora. Urezani i prazni redovi čine vaš kod čitljivijim i organiziranijim.

Pogledajmo sljedeći primjer skripte koja provjerava je li dati broj veći od 10.

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

Spremite kod u datoteku i pokrenite je iz naredbenog retka:

bash test.sh

Skripta će vas zatražiti da unesete broj. Ako, na primjer, unesete 15, naredba za test procijenit će vrijednost true jer je 15 veća od 10, a naredba echo unutar then rečenice će se izvršiti.

The variable is greater than 10.

if..else Izjava

Izjava Bash if..else ima sljedeći oblik:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

Ako TEST-COMMAND ocijeni vrijednost True , STATEMENTS1 će se izvršiti. U suprotnom, ako TEST-COMMAND vrati False , STATEMENTS2 će se izvršiti. U izjavi možete imati samo else jednu klauzulu.

Dodajmo else rečenicu prethodnom primjeru skripte:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else Izjava

Izjava Bash if..elif..else ima sljedeći oblik:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

Ako TEST-COMMAND1 ocijeni vrijednost True , TEST-COMMAND1 će se izvršiti. Ako TEST-COMMAND2 ocijeni vrijednost True , STATEMENTS2 će se izvršiti. Ako nijedna naredba ispitivanja ne ocijeni vrijednost True , STATEMENTS2 se izvršava.

Možete imati jednu ili više elif klauzula u izjavi. else klauzula nije obavezna.

Uvjeti se ocjenjuju uzastopno. Jednom kada se uvjet vrati True , preostali uvjeti se ne izvršavaju i kontrola programa prelazi na kraj naredbi if .

Dodajmo elif klauzulu prethodnoj skripti:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

Gniježđen if Izjave

Bash vam omogućuje da se gnijezde if izjave unutar if . Možete staviti više if izjava unutar drugog if iskaza.

Sljedeća skripta će vas zatražiti da unesete tri broja i ispisat ćete najveći broj među tri broja.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

Evo kako će izgledati izlaz:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. Umjesto upotrebe ugniježđenih if izjava, obično je učinkovitije koristiti izjavu slučaja.

Višestruki uvjeti

Logični operateri OR i AND omogućuju vam upotrebu više uvjeta u izjavama if .

Evo još jedne verzije skripte za ispis najvećeg broja među tri broja. U ovoj verziji, umjesto ugniježđenih if izjava, upotrijebit ćemo logički operator AND ( && ).

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

Ispitni operateri

U Bashu test naredba ima jedan od sljedećih oblika sintakse:

test EXPRESSION]

Za negiranje testnog izraza koristite logički operator NOT ( ! ). Pri uspoređivanju nizova uvijek koristite pojedinačne ili dvostruke navodnike da biste izbjegli bilo kakve dijeljenje riječi ili probleme s globulima.

Ispod su neki od najčešće korištenih operatora:

  • -n VAR - Točno ako je duljina VAR-a veća od nule. -z VAR - Točno ako je VAR prazna. STRING1 = STRING2 - Točno [STRING1 i STRING2 su jednaki. STRING1 != STRING2 - istinski STRING1 i STRING2 nisu jednaki. INTEGER1 -eq INTEGER2 - True INTEGER1 i INTEGER2 su jednaki. INTEGER1 -gt INTEGER2 - Pravi INTEGER1 veći je od INTEGER2. INTEGER1 -lt INTEGER2 - Istinski INTEGER1 je manji od INTEGER2. INTEGER1 -ge INTEGER2 - Istinski INTEGER1 jednak je ili veći od INTEGER2. INTEGER1 -le INTEGER2 - Istinski INTEGER1 jednak je ili manji od INTEGER2. -h FILE - Točno ako FILE postoji i simbolička je veza. -r FILE - Točno ako FILE postoji i čitljiv. -w FILE - Točno ako FILE postoji i može se pisati. -x FILE - Točno ako FILE postoji i može se izvršiti. -d FILE - Točno ako FILE postoji i ako je direktorij. -e FILE - Točno ako FILE postoji i datoteka je, bez obzira na vrstu (čvor, direktorij, utičnica itd.). -f FILE - Točno ako FILE postoji i uobičajena je datoteka (a ne mapa ili uređaj).

Zaključak

if..else if , if..else i if..elif..else omogućuju vam kontrolu tijeka izvršenja Bash skripte procjenom zadanih uvjeta.

bash terminal