Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function fun1(){
- return 34
- }
- function fun2(){
- local res=$(fun1)
- echo $res
- }
- function fun1(){
- echo 34
- }
- function fun2(){
- local res=$(fun1)
- echo $res
- }
- function fun1(){
- return 34
- }
- function fun2(){
- fun1
- local res=$?
- echo $res
- }
- fun1 (){
- return 34
- }
- fun2 (){
- fun1
- local res=$?
- echo $res
- }
- encrypt() {
- gpg -c -o- $1 # encrypt data in filename to stdout (asks for a passphrase)
- }
- encrypt public.dat > private.dat # write function result to file
- function fun1(){
- return 34
- }
- function fun2(){
- local res=$(fun1)
- echo $? # <-- Always echos 0 since the 'local' command passes.
- res=$(fun1)
- echo $? #<-- Outputs 34
- }
- POINTER= # used for function return values
- my_function() {
- # do stuff
- POINTER="my_function_return"
- }
- my_other_function() {
- # do stuff
- POINTER="my_other_function_return"
- }
- my_function
- RESULT="$POINTER"
- my_other_function
- RESULT="$POINTER"
- my_function() {
- echo "-> my_function()"
- # do stuff
- POINTER="my_function_return"
- echo "<- my_function. $POINTER"
- }
- #!/bin/bash
- ##A 6-element array used for returning
- ##values from functions:
- declare -a RET_ARR
- RET_ARR[0]="A"
- RET_ARR[1]="B"
- RET_ARR[2]="C"
- RET_ARR[3]="D"
- RET_ARR[4]="E"
- RET_ARR[5]="F"
- function FN_MULTIPLE_RETURN_VALUES(){
- ##give the positional arguments/inputs
- ##$1 and $2 some sensible names:
- local out_dex_1="$1" ##output index
- local out_dex_2="$2" ##output index
- ##Echo for debugging:
- echo "running: FN_MULTIPLE_RETURN_VALUES"
- ##Here: Calculate output values:
- local op_var_1="Hello"
- local op_var_2="World"
- ##set the return values:
- RET_ARR[ $out_dex_1 ]=$op_var_1
- RET_ARR[ $out_dex_2 ]=$op_var_2
- }
- echo "FN_MULTIPLE_RETURN_VALUES EXAMPLES:"
- echo "-------------------------------------------"
- fn="FN_MULTIPLE_RETURN_VALUES"
- out_dex_a=0
- out_dex_b=1
- eval $fn $out_dex_a $out_dex_b ##<--Call function
- a=${RET_ARR[0]} && echo "RET_ARR[0]: $a "
- b=${RET_ARR[1]} && echo "RET_ARR[1]: $b "
- echo
- ##----------------------------------------------##
- c="2"
- d="3"
- FN_MULTIPLE_RETURN_VALUES $c $d ##<--Call function
- c_res=${RET_ARR[2]} && echo "RET_ARR[2]: $c_res "
- d_res=${RET_ARR[3]} && echo "RET_ARR[3]: $d_res "
- echo
- ##----------------------------------------------##
- FN_MULTIPLE_RETURN_VALUES 4 5 ##<---Call function
- e=${RET_ARR[4]} && echo "RET_ARR[4]: $e "
- f=${RET_ARR[5]} && echo "RET_ARR[5]: $f "
- echo
- ##----------------------------------------------##
- read -p "Press Enter To Exit:"
- FN_MULTIPLE_RETURN_VALUES EXAMPLES:
- -------------------------------------------
- running: FN_MULTIPLE_RETURN_VALUES
- RET_ARR[0]: Hello
- RET_ARR[1]: World
- running: FN_MULTIPLE_RETURN_VALUES
- RET_ARR[2]: Hello
- RET_ARR[3]: World
- running: FN_MULTIPLE_RETURN_VALUES
- RET_ARR[4]: Hello
- RET_ARR[5]: World
- Press Enter To Exit:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement