Når du skriver et skript eller utfører en kommando, er det fornuftig å vite om det lyktes. I Linux, når en kommando kjøres, får vi en exit -kode som bekrefter om den utførte kommandoen var vellykket. Når du kjører en kommando som er avhengig av utdata fra den andre kommandoen, må du hente utgangskoden til den første kommandoen for å avgjøre om den andre kommandoen vil kjøre. Denne guiden fokuserer på to måter å sjekke om en kommando lyktes i bash.
To måter å sjekke om en kommando lyktes i bash
Når du kjører en kommando i bash, må den returnere en utgangskode eller status. Du kan bruke "if" -klæringen for å evaluere den returnerte verdien av en gitt kommando eller bruke den spesielle variabelen ($?) for å sjekke utgangskoden eller statusen til den utførte kommandoen. La oss komme i detalj.
1. Bruker bash hvis uttalelse
Med "if" -uttalelsen, Du kan evaluere returverdien til en kommando som utføres i et uttrykk. "IF" -uttalelsen henter utgangsstatusen. Avhengig av uttrykket ditt, utfører den den følgekommandoen i IF-Else-betinget uttalelse.
For eksempel kan vi opprette et skript som sletter hvilken som helst tekstfil i den gjeldende katalogen og returnerer en suksessmelding hvis kommandoen kjører eller en feilmelding hvis kommandoen ikke lykkes.
Gjør skriptet kjørbar ved hjelp av CHMOD -kommandoen. Deretter, utfør den.
Merk at kommandoen vår ikke lykkes, og dermed viser den mislykkede meldingen. Imidlertid, hvis kommandoen lykkes, får vi en annen utgang.
Du kan bruke det samme konseptet når du kjører hvilken som helst kommando i bash slik at hvis en gitt kommando ikke lykkes, viser den en gitt utdata for å bekrefte at neste kommando ikke vil utføre siden den første kommandoen allerede mislyktes.
2. Bruke den spesielle variabelen ($?)
Den spesielle variabelen ($?) Returnerer exit -koden til den sist utførte kommandoen. Når den returnerer utgangskoden som null, innebærer det at kommandoen lyktes med suksess. Imidlertid betyr noe annet nummer at kommandoen din ikke lyktes.
Ved å bruke den spesielle variabelen for å sjekke om en kommando lyktes med suksess, krever du at du bruker en binær sammenligningsoperatør (EQ) for å se om utgangskoden er null. Hvis ikke, utfører den den andre delen av IF-Else-betinget uttalelse.
Kjør kommandoen i skriptet ditt. Legg deretter til en betinget uttalelse for å sjekke om kommandoen din ble utført. La oss redigere vårt tidligere eksempel for å bruke den spesielle variabelen som følger:
Hvis vi kjører skriptet, returnerer det en utdata som bekrefter at det ikke lyktes siden det ikke er noen tekstfiler å slette. Derfor utfører den kommandoen i den andre delen i stedet for "hvis".
Anta at vi har tekstfiler i den gjeldende katalogen. Vi kan få en annen produksjon. Her får vi suksessmeldingen som betyr at exit -koden samsvarte med "hvis" -delen slik den lyktes.
I forrige tilfelle lyktes kommandoen. Vi kan bekrefte den basert på utgangsmeldingen som den vises, og bekrefter at utgangskoden for kommandoen er null.
Konklusjon
Det er to vanlige måter å sjekke om kommandoen din lyktes i bash. Du kan bruke den betingede if-ests-setningen for å vise en utgang, avhengig av om en kommando lyktes. Alternativt kan du bruke den spesielle variabelen ($?) for å sjekke exit-koden eller statusen til den utførte kommandoen ved hjelp av IF-Else-setningen.