Bash Exit on Feil

Bash Exit on Feil
En exit -statuskode returneres når noen Linux -kommando utføres fra terminalen, enten er kommandoen vellykket eller mislykket. Denne statuskoden kan brukes til å vise feilmeldingen for mislykket utførelse eller utføre en bestemt oppgave ved å bruke Shell -skriptet. Avsluttende statuskode representerer alltid med et tall. Verdien av denne koden er 0 for vellykket utførelse av Linux -kommandoen, og den returnerer et hvilket som helst tall fra 1 til 255 for den mislykkede utførelsen av kommandoen. Hvordan det eksisterer statuskode kan brukes fra terminalen og i bashskriptet vises i denne opplæringen.

Noen vanlige feilstatuskoder er nevnt nedenfor.

Kode Beskrivelse Kommentarer
0 Det indikerer vellykket utførelse.
1 Det brukes til å fange alle generelle feil. “Del med null”, “Operasjon ikke tillatt” osv. kan være feilmeldingene i denne koden.
2 Det indikerer misbruk av innebygde skall. “Manglende nøkkelord”, “Ingen slik fil eller katalog” osv. kan være feilmeldingene i denne koden.
126 Det genererer når en hvilken som helst kommando ikke er i stand til å utføre. Tillatelsesproblem eller påkrevd nøkkel som ikke er tilgjengelig, kan generere denne statuskode
127 Det genererer normalt for kommandoproblemet. “Kommando ikke funnet” kan være meldingen for denne feilkoden.
130 Det genererer for dødelig feil. “Script avsluttet av Ctrl+C” kan være meldingen til denne koden.
255* Det indikerer exit -kode utenfor rekkevidden.

Eksempel 1: Lese avkode fra terminalen

'$?'Skallvariabel kan brukes til å vise utgangskoden til enhver kommando. 'ls -la' er en gyldig kommando, og den viser listen over filer og mapper i den gjeldende arbeidskatalogen. Verdien av '$?'vil være 0 etter å ha utført' ls -la '-kommandoen. 'ls -xyz' er en ugyldig kommando og '$?'Vil returnere 2 som feilkode etter å ha utført kommandoen.

$ ls -la
$ ekko $?
$ ls -xyz
$ ekko $?

Eksempel-2: Lese exit code i bash-skript

Lag en bash -fil som heter read_file.sh med følgende skript. I dette skriptet vil filnavnet bli tatt som brukerens inndata, og totalt antall linjer, ord og tegn i den filen vil bli talt ved å bruke 'WC' -kommandoen. Hvis filnavnet er gyldig, er verdien av $ status_code 0, og hvis filnavnet er ugyldig, er verdien av $ status_code 1.

read_file.sh

#!/bin/bash
ekko "Skriv inn filnavnet"
Les filnavn
wc -lwc $ filnavn
status_code = $?
ekko "Utgangen til 'WC' -kommandoen er: $ status_code"

Eksempel-3: Bruke Exit Code-verdi for å gjøre spesifikk oppgave

Lag en bash -fil som heter Read_month.sh med følgende kode. Her vil en datoverdi bli tatt som input. Månedens navn vil hente fra datoverdien hvis inndatoen er gyldig ellers "ugyldig dato" -feilmelding vil vises. 'Hvis' tilstanden brukes i skriptet for å sjekke statusen for utgangsstatus for datakoden for datakommandoen. Hvis tilstanden er sann, vil suksessmeldingen og månedens navn på datoen skrives ut. Hvis tilstanden er falsk, vil feilmeldingen og avkjøringsstatuskode, 1 skrives ut.

Read_month.sh

#!/bin/bash
Ekko "Skriv inn en dato i formatet: Yyyy-MM-DD"
Les Date_Value
current_month = $ (date -d "$ date_value" '+%b')
Hvis [$? -Eq 0]
deretter
Echo "Dato -kommando utføres vellykket"
ekko "nåværende måned er $ current_month"
ellers
Echo "Dato -kommando blir ikke utført med hell"
Avslutt 1
fi

Kjør manuset.

$ bash read_month.sh

Eksempel-4: Bruke && og || med exit -kode

'&&' logisk operatør brukes til vellykket exit code og '||' Logisk operatør brukes til mislykket utgangskode. Følgende kommando vil skrive ut 'filen eksisterer' hvis bok.tekst filen eksisterer i den nåværende plasseringen og skriv ut filen ikke eksisterer "hvis bok.tekst filen eksisterer ikke på det nåværende stedet.

$ kattebok.txt && ekko "fil eksisterer" || ekko "fil eksisterer ikke"

Konklusjon:

Ulike bruksområder for status for avkjørsel vises i denne opplæringen. Håper, leseren vil få et klart konsept om avkjørselstatuskode for bash etter å ha lest denne opplæringen.