HomeLinuxIs There a “goto” Assertion in Bash

Is There a “goto” Assertion in Bash


One of the important options of Bash is its capability to regulate the move of the script’s execution, this management is feasible by means of varied conditional statements like if-else and loops like for and whereas. Nevertheless, some builders could surprise if Bash helps a “goto” assertion, this text will discover whether or not there’s a goto assertion in Bash or not.

Is There a “goto” Assertion in Bash

A “goto” assertion is a programming assemble that permits programmers to leap to a particular a part of the code. It’s thought-about a controversial characteristic resulting from its potential to make code tough to learn and perceive. Nevertheless, it may be helpful in some circumstances, particularly when coping with complicated management flows.

In Bash, there isn’t any direct assist for the “goto” assertion, as an alternative, Bash offers different constructs that may obtain the identical impact as a “goto” assertion.

For instance, the ‘break’ and ‘proceed’ statements enable programmers to leap out of loops or skip iterations in a loop. Equally, Bash offers the ‘return’ assertion to exit a operate and return to the calling code.

#!/bin/bash

# outline a operate so as to add two numbers

operate add_numbers {

 

if [ $# -ne 2 ]; then

echo “Error: Give two numbers so as to add”

return 1 # exit operate with error standing

fi

 

consequence=$(( $1 + $2 ))

 

echo $consequence

}

consequence=$(add_numbers 10 20)

if [ $? -eq 0 ]; then

echo “Outcome: $consequence

else

echo “Perform failed with error code $?”

fi

The code declares a operate referred to as add_numbers that takes two arguments, checks if precisely two arguments are supplied, add the 2 numbers, and shops the consequence within the consequence variable.

The script then calls the add_numbers operate with two arguments and checks the return standing of the operate utilizing the ‘$?’ variable. If the operate succeeds (return standing 0) then it prints the consequence, in any other case it prints an error message with the return standing of the operate:

One other different to the “goto” assertion in Bash is the case assertion because the case assertion is much like a swap assertion in different programming languages and permits programmers to execute particular code blocks primarily based on the worth of a variable. The case assertion can be utilized to realize an analogous impact as a “goto” assertion. Beneath is the code that simply provides two integers utilizing the identical logic on which the goto assertion works:

#!/bin/bash

# learn two numbers from the person

learn -p “Enter first quantity: “ num1

learn -p “Enter second quantity: “ num2

operate add_numbers {

consequence=$(( $1 + $2 ))

# output the consequence to the person

echo “Outcome: $consequence

}

case $num1$num2 in

*[!09]*)

echo “Error: Enter legitimate integers”

;;

*)

add_numbers $num1 $num2

;;

esac

First the learn command is used to immediate the person to enter two numbers after which the add_numbers operate provides the 2 numbers and outputs the consequence to the person. To verify if each numbers are legitimate integers code makes use of the case assertion. If both quantity just isn’t a sound integer, then the script outputs an error message and if each numbers are legitimate integers, then the add_numbers operate is named so as to add the numbers collectively and output the consequence.

By utilizing the case assertion to verify the enter, the script avoids the necessity for a “goto” assertion to leap to a particular a part of the code primarily based on the enter worth:

Conclusion

Bash doesn’t present direct assist for the “goto” assertion nonetheless, Bash offers different constructs like a break, proceed, return, and case statements that may obtain related results as a “goto” assertion. As with every programming language, it’s important to make use of these constructs judiciously and keep away from utilizing them excessively. Correct use of management move constructs could make the code extra readable and maintainable, whereas extreme use could make the code obscure and debug.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments