Sometimes you may need to return a value from a called function in shell script. Unfortunately, there is no direct way to do this as available in other programming languages. However, there are three workarounds to return value in shell script. In this article, we will look at how to return value from a function in shell script.
How to Return Value in Shell Script Function
Here are the different ways to return value in shell script function.
1. Using Echo
You can echo string at the end of your Shell script function. In fact you can echo strings throughout your function if you want. Here is an example test.sh shell script file.
#!/bin/sh # Define your function here test () { echo "Hello World" } #Invoke function test
You can call it from terminal. When you run this script, it will call test function, which echoes “Hello World” text.
$ ./test.sh Hello World
2. Return Exit Status
You may also return an exist status at the end of your shell script function as shown below. However, exit status can only be a number between 0 and 255.
#!/bin/sh # Define your function here test () { return 49 } #Invoke function test echo $?
In this case, the exit status returned by your shell function is stored in $? which can be dislayed using echo. When you run this shell script, it will return 49 which is stored in $?. So you will get the output as 49. By the way, $? always stores the exit status of the most recently run command in Linux.
$ ./test.sh 49
3. Using Shared Variable
In this case, you can use a shared variable that you set within your shell script function and then use it afterwards. Here is an example. Here we define a variable test_var outside the shell function, then set its value within the function, and use it afterwards.
#!/bin/sh test_var=0 # Define your function here test () { test_var = 39 } #Invoke function test if [ $test_var == 0 ] then echo "variable not set" else echo "variable is set" fi
When you run the shell script function, it will set the value of test_var, which is used to echo the appropriate message.
$ ./test.sh variable is set
In this article, we have seen three workarounds to return a value from function called in shell script.
Also read:
How to Run Python Script in Django Shell
How to Disable Foreign Key Constraint in MySQL
How to Loop Through List in Django Template
How to Convert PDF to Image/JPG in Linux
How to Fix NGINX Upstream Timed Out Error
Sreeram has more than 10 years of experience in web development, Python, Linux, SQL and database programming.