I denne opplæringen, vil vi veilede deg gjennom grunnleggende av Bash if uttalelse og viser deg hvordan du kan bruke det i ditt shell-skript.

avgjørelser er en av de mest grunnleggende begrepene i programmering. Som i andre programmeringsspråk, if, if..else, if..elif..else og nestede if uttalelser i Bash kan brukes til å kjøre kode basert på en bestemt tilstand.,

hvis Uttalelse #

Bash if conditionals kan ha forskjellige former. Den mest grunnleggende if uttalelse tar følgende form:

if TEST-COMMANDthen STATEMENTSfi

if uttalelse starter med if nøkkelord etterfulgt av den betingede uttrykk og then søkeord. Uttalelsen avsluttes med fi søkeord.,

Hvis TEST-COMMAND beregner True, STATEMENTS blir utført. Hvis TEST-COMMAND tilbake False, skjer det ingenting, STATEMENTS blir ignorert.

generelt er det en god vane å alltid rykke inn koden din og separat kode blokker med tomme linjer. De fleste velge å bruke enten 4-plass eller 2-plass innrykk. Fordypninger og blanke linjer for å gjøre koden mer lesbar og organisert.,

La oss se på følgende eksempel skript som sjekker om et gitt antall er større enn 10:

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

Lagre koden i en fil og kjøre det fra kommandolinjen:

bash test.sh

skriptet vil be deg om å angi et nummer. Hvis du for eksempel inn 15, test – kommandoen vil vurdere å true fordi 15 er større enn 10 og echo – kommandoen inne i then klausulen vil bli utført.

The variable is greater than 10.

om..,andre Uttalelse #

Bash if..else uttalelse tar følgende form:

if TEST-COMMANDthen STATEMENTS1else STATEMENTS2fi

Hvis TEST-COMMAND beregner True, STATEMENTS1 vil bli utført. Ellers, hvis TEST-COMMAND tilbake False, STATEMENTS2 vil bli utført. Du kan bare ha en else punkt i uttalelsen.,

La oss legge til en else klausulen til forrige eksempel manus:

Hvis du kjører koden, og angi et nummer, vil skriptet skriver ut en annen melding, basert på om antallet er større eller mindre/lik 10.

om..elif..andre Uttalelse #

Bash if..elif..else uttalelse tar følgende form:

if TEST-COMMAND1then STATEMENTS1elif TEST-COMMAND2then STATEMENTS2else STATEMENTS3fi

Hvis TEST-COMMAND1 beregner True, STATEMENTS1 vil bli utført., Hvis TEST-COMMAND2 beregner True, STATEMENTS2 vil bli utført. Hvis ingen av de midlertidige vurdere å True, STATEMENTS2 er utført.

Du kan ha en eller flere elif punktene i erklæringen. else klausulen er valgfritt.

De vilkår som er evaluert fortløpende., Når en tilstand som returnerer True de øvrige vilkårene ikke er utført og programmet kontroll flytter til slutten av if uttalelser.

La oss legge til en elif klausulen til tidligere script:

Nestede hvis Uttalelser #

Bash gir deg mulighet til å hekke if uttalelser innenfor if uttalelser. Du kan plassere flere if uttalelse i en annen if uttalelse.,

følgende skript vil be deg om å oppgi tre tall og skriver ut det største antallet blant de tre tallene.

Her er hvordan produksjonen vil se slik ut:

Enter the first number: 4Enter the second number: 7Enter the third number: 27 is the largest number.
Generelt er det mer effektivt å bruke case uttalelse i stedet nestede if uttalelser.

Flere Forhold #

Den logiske OR og AND operatører, kan du bruke flere forhold i if uttalelser.,

Her er en annen versjon av skriptet for å skrive ut det største antallet blant de tre tallene. I denne versjonen, i stedet for nestede if uttalelser, bruker vi den logiske AND (&&) operatør.

Test Operatører #

I Bash, test – kommandoen tar du ett av følgende syntaks former:

test EXPRESSION]

for Å gjøre skriptet bærbar, foretrekker å bruke den gamle test [ – kommandoen som er tilgjengelig på alle POSIX-skjell., Den nye oppgraderte versjonen av test kommandoen [[ (dobbel parentes) støttes av de fleste moderne systemer bruker Bash, Zsh, og Ksh som en standard shell.

for Å gjøre testen uttrykk, kan du bruke den logiske NOT (!) operatør. Ved sammenligning av strenger , må du alltid bruke enkle eller doble anførselstegn for å unngå ordet splitting og globbing problemer.,

Nedenfor er noen av de mest brukte operatører:

  • -n VAR – Sann hvis lengden på VAR er større enn null.
  • -z VAR – Sann hvis VAR er tom.
  • STRING1 = STRING2 – Sann hvis STRING1 og STRING2 er like.
  • STRING1 != STRING2 – Sann hvis STRING1 og STRING2 er ikke like.,
  • INTEGER1 -eq INTEGER2 – True if INTEGER1 and INTEGER2 are equal.
  • INTEGER1 -gt INTEGER2 – True if INTEGER1 is greater than INTEGER2.
  • INTEGER1 -lt INTEGER2 – True if INTEGER1 is less than INTEGER2.
  • INTEGER1 -ge INTEGER2 – True if INTEGER1 is equal or greater than INTEGER2.
  • INTEGER1 -le INTEGER2 – True if INTEGER1 is equal or less than INTEGER2.,
  • -h FILE – True if the FILE exists and is a symbolic link.
  • -r FILE – True if the FILE exists and is readable.
  • -w FILE – True if the FILE exists and is writable.
  • -x FILE – True if the FILE exists and is executable.,
  • -d FILE – Sann hvis FILE eksisterer og er en katalog.
  • -e FILE – Sann hvis FILE eksisterer og er en fil, uavhengig av type (node, katalog, kontakt, etc.).
  • -f FILE – Sann hvis FILE eksisterer og er en vanlig fil (ikke en katalog eller enhet).,

Konklusjon #

if, if..else og if..elif..else uttalelser tillate deg å kontrollere flyten av Bash-script ‘ s gjennomføring av evaluering gitt forhold.