C'è una dichiarazione goto in bash

C'è una dichiarazione goto in bash
Una delle caratteristiche più significative di Bash è la sua capacità di controllare il flusso dell'esecuzione dello script, questo controllo è possibile attraverso varie dichiarazioni condizionali come IF-Else e loop come per e. Tuttavia, alcuni sviluppatori potrebbero chiedersi se Bash supporti un "vai a" dichiarazione, questo articolo esplorerà se esiste un vai a Dichiarazione in Bash o no.

C'è una dichiarazione "goto" in bash

UN "vai a" L'istruzione è un costrutto di programmazione che consente ai programmatori di passare a una parte specifica del codice. È considerata una caratteristica controversa a causa del suo potenziale per rendere il codice difficile da leggere e capire. Tuttavia, in alcuni casi può essere utile, specialmente quando si tratta di flussi di controllo complessi.

In Bash, non esiste un supporto diretto per il "vai a" Dichiarazione, invece, bash fornisce costrutti alternativi in ​​grado di ottenere lo stesso effetto di a "vai a" dichiarazione.

Ad esempio, il 'rottura' E 'Continua' Le dichiarazioni consentono ai programmatori di saltare fuori dai loop o saltare le iterazioni in un ciclo. Allo stesso modo, Bash fornisce il 'ritorno' Dichiarazione per uscire da una funzione e tornare al codice chiamante.

#!/Bin/Bash
# Definisci una funzione per aggiungere due numeri
funzione add_numbers
if [$# -NE 2]; Poi
ECHO "Errore: dare due numeri da aggiungere"
Restituisci la funzione di uscita 1 # con lo stato di errore
fi
risultato = $ (($ 1 + $ 2))
Echo $ risultato

risultato = $ (add_numbers 10 20)
Se [$? -EQ 0]; Poi
Echo "Risultato: $ risultato"
altro
Echo "Funzione non riuscita con il codice di errore $?"
fi

Il codice dichiara una funzione chiamata add_numbers Ciò richiede due argomenti, controlli se vengono forniti esattamente due argomenti, aggiungi i due numeri e memorizza il risultato nella variabile del risultato.

Lo script chiama quindi il file add_numbers funzione con due argomenti e controlla lo stato di ritorno della funzione usando il '$?' variabile. Se la funzione ha successo (Stato di ritorno 0), quindi stampa il risultato, altrimenti stampa un messaggio di errore con lo stato di ritorno della funzione:

Un'altra alternativa al "vai a" la dichiarazione in bash è il caso dichiarazione Poiché l'istruzione Case è simile a un'istruzione Switch in altri linguaggi di programmazione e consente ai programmatori di eseguire blocchi di codice specifici in base al valore di una variabile. IL Dichiarazione del caso può essere usato per ottenere un effetto simile a "vai a" dichiarazione. Di seguito è riportato il codice che aggiunge solo due numeri interi usando la stessa logica su cui il GOTO Dichiarazione lavori:

#!/Bin/Bash
# Leggi due numeri dall'utente
Leggi -p "Immettere il primo numero:" NUM1
Leggi -p "Immettere il secondo numero:" NUM2
funzione add_numbers
risultato = $ (($ 1 + $ 2))
# Output il risultato per l'utente
Echo "Risultato: $ risultato"

Caso $ num1 $ num2 in
*[!0-9]*)
Echo "Errore: immettere numeri interi validi"
;;
*)
add_numbers $ num1 $ num2
;;
Esac

Prima il Leggi il comando viene utilizzato per richiedere all'utente di inserire due numeri e quindi il add_numbers La funzione aggiunge i due numeri ed emette il risultato all'utente. Per verificare se entrambi i numeri sono validi interi utilizza il Dichiarazione del caso. Se uno dei due numeri non è un numero intero valido, lo script emette un messaggio di errore e se entrambi i numeri sono numeri interi validi, allora il add_numbers La funzione è chiamata per aggiungere i numeri insieme e produrre il risultato.

Usando il Dichiarazione del caso Per controllare l'input, lo script evita la necessità di un "vai a" istruzione per saltare in una parte specifica del codice in base al valore di input:

Conclusione

Bash non fornisce supporto diretto per il Dichiarazione "Goto" Tuttavia, Bash fornisce costrutti alternativi come una pausa, continua, ritorno e dichiarazioni di casi che possono ottenere effetti simili a Dichiarazione "Goto". Come con qualsiasi linguaggio di programmazione, è essenziale usare questi costrutti e evitare di usarli eccessivamente. L'uso corretto dei costrutti di flusso di controllo può rendere il codice più leggibile e mantenibile, mentre un uso eccessivo può rendere il codice difficile da comprendere e eseguire il debug.