Kui…else lause kasutamine Bashis tingimuskoodi täitmiseks.
Bash (Bourne Again Shell) on GNU/Linuxi operatsioonisüsteemide shell-käsuviip ja skriptikeel. See on enamiku Linuxi distributsioonide vaikekest.
Tingimuslikud laused on igas programmeerimiskeeles üliolulised, nii kompileeritud kui ka skriptitud. Need võimaldavad kasutajal käivitada eelnevalt määratletud tingimusel põhinevat koodijuppi, mis on programmeerimisloogika üks aluseid. Selles artiklis õpime, kuidas kasutada kui...muidu
tingimuslause Bashis.
Sissejuhatus
The kui...muidu
Bashi avaldus võimaldab kasutajal tingimuste alusel koodivooga manipuleerida. Kasutaja saab määrata eraldi käivitatavad koodiplokid, millest ainult üks käivitatakse lõpuks käitusajal, sõltuvalt täidetud tingimusest.
Pange tähele, et saab määrata rohkem kui kaks tingimust, mille jaoks elif
avaldust saab kasutada. Kasutaja saab anda kasutades suvalise arvu tingimusi elif
ja lõpuks vaiketingimus kasutades muidu
blokk. Vaatame selle kohta lähemalt allolevast süntaksist ja näidetest.
Üldine süntaks
Üldine süntaks jaoks kui...muidu
avaldus Bashis on:
kui siis muidu fi
Siin, kui rahuldab, st kui see tagastab 0 (success), siis käivitatakse koodiplokk 1. Kui tingimus ei tagasta 0, st tagastab tõrkeoleku, siis käivitatakse koodiplokk 2. The
kui...muidu
plokk lõpeb tähega a fi
avaldus.
Mitme ploki puhul, mis vastavad mitmele tingimusele,elif
kasutatakse:
kui siis elif siis elif siis ... ... muidu fi
Siin kontrollitakse tingimusi järjekorras ja käivitatakse esimese tingimuse koodiplokk, mis tagastab oleku 0 (edukus). Nt. kui Kui ükski tingimus ei anna olekut 0, Pange tähele, et Koodiploki täitmiseks kui muutujal on konkreetne väärtus: Mitme väärtuse kontrollimiseks tehke järgmist. Tingimusteks võivad olla mis tahes Linuxi käsud. Vastav koodiplokk käivitub, kui käsk töötab edukalt. Ülaltoodud näites alates Võime ka teise pesa panna See on kasulik, kui esialgse tingimuse täitmist tuleb kontrollida eraldi tingimuste komplekti. Näiteks proovib järgmine kood installida veebiserveri tarkvara: Kood kontrollib esmalt, kas Nginx on juba süsteemi installitud. Kui on, kuvab see lihtsalt teate ja väljub. Kui see pole nii, proovib see installida Nginxi. Kui mingil põhjusel ei saanud Nginxi paketist süsteemi installida, proovib see installida Apache2. Kui isegi Apache2 annab installimisel vea, kuvatakse teade, et tarkvara ei saa installida. Sarnasel viisil saab pesastatud plokki kasutada ka sees Sarnaselt mis tahes Bashi koodiga, Kasutaja saab selle koodi ka skriptifaili salvestada ja skriptifaili käivitada. The Sellele failile täitmisõiguste andmiseks käivitage: Lõpuks käivitage faili käivitamiseks: Sarnaselt mis tahes programmeerimiskeelega, tagastab nullist erineva oleku (tõrge), siis
on kontrollitud. Kui
tagastab oleku 0,
hukatakse. Pärast seda edasisi tingimusi ei kontrollita ja koodi täitmine jätkub pärast koodi täitmist
fi
avaldus. muus plokis täidetakse. Pange tähele, et muu plokk on valikuline. Kui ükski tingimus pole täidetud, samuti ei
muidu
plokk on määratud, tingimusliku koodiplokki ei käivitata ja koodi täitmine jätkub pärast koodi täitmist fi
avaldus, nagu on näidatud alloleval voograafikul.siis
lauset tuleb kasutada alles pärast kui
ja elif
avaldused ja pole nõutavad pärast muidu
avaldus.Näited
x=0 kui [ $x -eq 0 ] siis kaja "X väärtus on 0" muidu kaja "X väärtus ei ole 0" fi
x=2 kui [ $x -eq 0 ] siis kaja "Väärtus X on 0" elif [ $x -eq 1 ] siis kaja "Väärtus X on 1" elif [ $x -eq 2 ] siis kaja "Väärtus X on 2" muidu kaja "X väärtus ei ole 0" fi
kui npm -v, siis kaja "süsteemis olemasolev NPM" muidu sudo apt install npm fi
npm
ei olnud süsteemi installitud, käsk npm -v
tagastas nullist erineva oleku. Seega läks koodi täitmine sisse muidu
plokk, kuhu installime npm kasutades asjakohane
paketihaldur. Nagu näeme, palus see mul sisestada parool ja alustas npm installimist.kui...muidu
plokk an kui
, muidu
või elif
plokk:x=0 y=1 kui [ $x -eq 0 ] siis kaja "X on 0" kui [ $y -eq 1 ] siis kaja "Y on 1" muidu kaja "Y ei ole 1" fi else kaja "X on mitte 0"fi
kui nginx -v, siis kaja "NGINX on juba installitud." muidu, kui sudo apt install nginx, siis korda "NGINX installimine õnnestus". elif sudo apt install apache2, seejärel korda "APACHE2 installimine õnnestus". else echo "Ei saa installida ühtegi veebitarkvara." fi
elif
plokk samuti.Täitmine
kui...muidu
: skriptid ja käsuridakui...muidu
lauset saab kasutada Bash shellis otse või käivitatavast shelliskriptifailist. Kui Bashi tõlk leiab kui
, muidu
või elif
lause, jätkab see kesta, et lubada kasutajal koodiplokki siseneda.#!/bin/bash
alguses määrab tõlgi, mida faili käivitamisel kasutatakse. Kuigi Bash on tänapäeval kõige sagedamini kasutatav kest, eelistavad mõned kasutajad selliseid kestasid nagu zsh, mis tuleks selle faili alguses määrata bashi asemel.chmod +x test.sh
./test.sh
Järeldus
kui...muidu
avaldus on Bashi põhiomadus. Selle kasutamise õppimine aitab nii põhi- kui ka täiustatud skriptide kirjutamisel palju teha.