Why fighting the coronavirus depends on you
Indholdsfortegnelse:
if
erklæringif..else
erklæringif..elif..else
erklæring- Indlejret
if
udsagn - Flere forhold
- Testoperatører
- Konklusion
Beslutningstagning er et af de mest grundlæggende begreber inden for programmering af computere. Som på ethvert andet programmeringssprog,
if
,
if..else
,
if..elif..else
og indlejret,
if
udsagn i Bash kan bruges til at udføre kode baseret på en bestemt betingelse.
I denne tutorial vil vi lede dig gennem det grundlæggende i Bash,
if
udsagn og vise dig, hvordan du bruger dem i dine shell-scripts.
if
erklæring
Bash,
if
balsam kan have forskellige former. Den mest basale,
if
udsagn, har følgende form:
if TEST-COMMAND then STATEMENTS fi
if
sætningen starter med
if
nøgleordet efterfulgt af det betingede udtryk og det
then
søgeord. Udsagnet slutter med
fi
nøgleordet.
Hvis
TEST-COMMAND
evalueres til
True
, udføres
STATEMENTS
. Hvis
TEST-COMMAND
returnerer
False
, sker der ikke noget,
STATEMENTS
ignoreres.
Generelt er det en god praksis altid at indrykke din kode og adskille kodeblokke med blanke linjer. De fleste mennesker vælger at bruge enten 4-plads eller 2-plads indrykket. Indrykk og blanke linjer gør din kode mere læselig og organiseret.
Lad os se på følgende eksemplet script, der kontrollerer, om et givet antal er større end 10.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Gem koden i en fil og kør den fra kommandolinjen:
bash test.sh
Scriptet beder dig om at indtaste et nummer. Hvis du for eksempel indtaster 15, vil testkommandoen evaluere til
true
fordi 15 er større end 10, og
echo
kommandoen inde i den
then
klausul udføres.
The variable is greater than 10.
if..else
erklæring
Bash
if..else
erklæringen har følgende form:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
Hvis
TEST-COMMAND
evalueres til
True
, udføres
STATEMENTS1
. Ellers, hvis
TEST-COMMAND
returnerer
False
, udføres
STATEMENTS2
. Du kan kun have en
else
klausul i erklæringen.
Lad os tilføje en
else
klausul til det forrige eksempel-script:
#!/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
erklæring
Bash
if..elif..else
erklæringen har følgende form:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
Hvis
TEST-COMMAND1
evalueres til
True
, udføres
STATEMENTS1
. Hvis
TEST-COMMAND2
evalueres til
True
, udføres
STATEMENTS2
. Hvis ingen af testkommandoerne evalueres til
True
, udføres
STATEMENTS2
.
Du kan have en eller flere
elif
klausuler i erklæringen. Den
else
klausul er valgfri.
Betingelserne vurderes sekventielt. Når en betingelse er vendt
True
udføres de resterende betingelser ikke, og programkontrol flytter sig til slutningen af
if
sætningerne.
Lad os tilføje en
elif
klausul til det forrige script:
#!/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
Indlejret
if
udsagn
Bash giver dig mulighed for at hekke,
if
udsagn inden for
if
udsagn. Du kan placere flere,
if
udsagn i en anden,
if
sætning.
Følgende script vil bede dig om at indtaste tre numre og udskrive det største antal blandt de tre numre.
#!/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
Sådan ser output ud:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
I stedet for at bruge indlejrede,
if
udsagn, er det som regel mere effektivt at bruge sagsangivelsen.
Flere forhold
De logiske
OR
og
AND
operatører giver dig mulighed for at bruge flere betingelser i
if
sætningerne.
Her er en anden version af scriptet for at udskrive det største antal blandt de tre numre. I denne version vil vi i stedet for de indlejrede,
if
udsagn, bruge den logiske
AND
(
&&
) operator.
#!/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
Testoperatører
I Bash har testkommandoen en af følgende syntaksformer:
test EXPRESSION]
For at ignorere testudtrykket skal du bruge den logiske
NOT
(
!
) Operator. Når du sammenligner strenge, skal du altid bruge enkelt eller dobbelt anførselstegn for at undgå problemer med at opdele ord eller kløbe.
Nedenfor er nogle af de mest anvendte operatører:
-
-n
VAR
- Sandt hvis længden af VAR er større end nul.-z
VAR
- Sandt hvis VAR er tom.STRING1 = STRING2
- Sandt [STRING1 og STRING2 er ens.STRING1 != STRING2
- Sand STRING1 og STRING2 er ikke ens.INTEGER1 -eq INTEGER2
- True INTEGER1 og INTEGER2 er ens.INTEGER1 -gt INTEGER2
- Sand INTEGER1 er større end INTEGER2.INTEGER1 -lt INTEGER2
- True INTEGER1 er mindre end INTEGER2.INTEGER1 -ge INTEGER2
- True INTEGER1 er lig eller større end INTEGER2.INTEGER1 -le INTEGER2
- True INTEGER1 er lig eller mindre end INTEGER2.-h
FILE
- Sandt, hvis FILEN findes og er et symbolsk link.-r
FILE
- Sandt, hvis FILEN findes og er læsbar.-w
FILE
- Sandt, hvis FILEN findes og kan skrives.-x
FILE
- Sandt, hvis FILEN findes og er eksekverbar.-d
FILE
- Sandt, hvis FILEN findes og er et bibliotek.-e
FILE
- Sandt, hvis FILEN findes og er en fil, uanset type (node, bibliotek, socket osv.).-f
FILE
- Sandt, hvis FILEN findes og er en almindelig fil (ikke et bibliotek eller enhed).
Konklusion
if..else
if
,
if..else
og
if..elif..else
giver dig mulighed for at kontrollere strømmen af Bash-scriptets udførelse ved at evaluere givne betingelser.
På baggrund af "markedsforholdene" og efter afslutningen af sin due diligence-proces besluttede Blockbuster, at overtagelsen ikke var i selskabets bedste interesse, sagde Jim Keyes, Blockbusters administrerende direktør og formand i en erklæring om Tirsdag.

I februar tilbød Blockbuster så meget som US $ 1,33 milliarder til Circuit City, med prisen afhængig af en gennemgang af sine poster. Tilbuddet synes at have været omstridt fra starten. Filmudlejningsfirmaet sagde det først gjorde tilbuddet direkte til Circuit Citys administrerende direktør, men fik ikke lov til at gennemgå selskabets bøger for at fastsætte en fast tilbudspris. Det gjorde tilbuddet offentligt i håb om, at aktionærerne kunne presse selskabet til at forhandle en aftale.
Den nye Skype iPhone app er mere interessant som en politisk erklæring end som en applikation. Ikke at der er noget galt med appen, undtagen selvfølgelig for det store antal mennesker, der ikke kan få det til at køre ordentligt. For dem har jeg gode nyheder: Du mangler ikke meget.

Omkring halvdelen af de tidlige brugere, baseret på App Store-feedback, elsker Skype til iPhone. Den anden halvdel kan ikke få det til at køre ordentligt. Jeg er en af de heldige, da Skype virker fint på min iPhone.
Bash sag-erklæring

Bash case-udsagn bruges generelt til at forenkle komplekse betingelser, når du har flere forskellige valg. Brug af sagsangivelse i stedet for indlejret, hvis udsagn vil hjælpe dig med at gøre dine bash-scripts mere læsbare og lettere at vedligeholde.