Er det en goto uttalelse i bash

Er det en goto uttalelse i bash
En av de mest betydningsfulle funksjonene ved bash er den. Noen utviklere kan imidlertid lure på om bash støtter en "gå til" uttalelse, denne artikkelen vil utforske om det er en gå til uttalelse i bash eller ikke.

Er det en "goto" uttalelse i bash

EN "gå til" Uttalelse er en programmeringskonstruksjon som lar programmerere hoppe til en bestemt del av koden. Det anses som et kontroversielt trekk på grunn av potensialet til å gjøre kode vanskelig å lese og forstå. Imidlertid kan det være nyttig i noen tilfeller, spesielt når du arbeider med komplekse kontrollstrømmer.

I bash er det ingen direkte støtte for "gå til" Uttalelse, i stedet, gir Bash alternative konstruksjoner som kan oppnå samme effekt som en "gå til" uttalelse.

For eksempel 'gå i stykker' og 'Fortsette' Uttalelser lar programmerere hoppe ut av løkker eller hoppe over iterasjoner i en loop. Tilsvarende gir Bash 'komme tilbake' Uttalelse for å avslutte en funksjon og gå tilbake til samtalekoden.

#!/bin/bash
# Definer en funksjon for å legge til to tall
funksjon add_numbers
hvis [$# -ne 2]; deretter
ekko "Feil: Gi to tall å legge til"
Return 1 # Avsluttfunksjon med feilstatus
fi
Resultat = $ (($ 1 + $ 2))
ekko $ resultat

Resultat = $ (add_numbers 10 20)
Hvis [$? -Eq 0]; deretter
ekko "Resultat: $ Resultat"
ellers
ekko "-funksjon mislyktes med feilkode $?""
fi

Koden erklærer en funksjon som heter add_numbers Det tar to argumenter, sjekker hvis nøyaktig to argumenter er gitt, legg til de to tallene og lagrer resultatet i resultatvariabelen.

Manuset kaller deretter add_numbers funksjon med to argumenter og sjekker returstatusen til funksjonen ved å bruke '$?' variabel. Hvis funksjonen lykkes (returstatus 0), skriver den ut resultatet, ellers skriver den ut en feilmelding med returstatus for funksjonen:

Et annet alternativ til "gå til" uttalelse i bash er sak uttalelse Siden saksuttalelsen ligner en Switch -setning på andre programmeringsspråk og lar programmerere utføre spesifikke kodeblokker basert på verdien av en variabel. De Saksuttalelse kan brukes til å oppnå en lignende effekt som en "gå til" uttalelse. Nedenfor er koden som bare legger til to heltall ved å bruke den samme logikken som Goto uttalelse virker:

#!/bin/bash
# Les to tall fra brukeren
Les -P "Skriv inn første nummer:" num1
Les -P "Angi andre nummer:" NUM2
funksjon add_numbers
Resultat = $ (($ 1 + $ 2))
# send resultatet til brukeren
ekko "Resultat: $ Resultat"

sak $ num1 $ num2 i
*[!0-9]*)
ekko "Feil: Skriv inn gyldige heltall"
;;
*)
add_numbers $ num1 $ num2
;;
Esac

Først Les kommando brukes til å be brukeren om å legge inn to numre og deretter add_numbers Funksjon legger til de to tallene og gir resultatene til brukeren. For å sjekke om begge tallene er gyldige heltallkode, bruker du Saksuttalelse. Hvis begge nummerene ikke er et gyldig heltall, sender skriptet en feilmelding, og hvis begge tallene er gyldige heltall, så er det add_numbers Funksjon kalles for å legge til tallene sammen og sende ut resultatet.

Ved å bruke Saksuttalelse For å sjekke innspillet unngår skriptet behovet for en "gå til" Uttalelse for å hoppe til en bestemt del av koden basert på inngangsverdien:

Konklusjon

Bash gir ikke direkte støtte for “Goto” uttalelse Bash gir imidlertid alternative konstruksjoner som en pause, fortsett, retur og saksuttalelser som kan oppnå lignende effekter som en “Goto” uttalelse. Som med ethvert programmeringsspråk, er det viktig å bruke disse konstruksjonene med omtanke og unngå å bruke dem for mye. Riktig bruk av kontrollstrømningskonstruksjoner kan gjøre koden mer lesbar og vedlikeholdbar, mens overdreven bruk kan gjøre koden vanskelig å forstå og feilsøke.