Funktioner och returvärde

I Bash kan en funktion inte returnera något värde. Vi kan hantera det på olika sätt. Ett alternativ är att vi sätter vi ett värde till en global variabel:

#!/usr/bin/env bash
#
# An example script on return alternatives 1

result=0

function count {
    for value in "$@"
    do
        (( result+=value ))
    done
}

count 29 10 3

echo "$result" # 42

Ett annat alternativ är att fånga upp en utskrift från funktionen och använda command substitution:

#!/usr/bin/env bash
#
# An example script on return alternatives 2

function count {
    total=0

    for value in "$@"
    do
        (( total+=value ))
    done

    echo "$total"
}

result=$(count 15 7 20)

echo "$result" # 42

#Revision history

  • 2019-03-08: (A, lew) Första versionen.

Document source.