funkcja skryptu powłoki zwraca łańcuch

Jestem nowy w skryptach powłoki, próbuję stworzyć prostą funkcję, która zwróci skonkatenowane dwa ciągi, które są przekazywane jako parametry. Próbowałem z poniższym kodem

   function getConcatenatedString() {
       echo "String1 $1"
       echo "String2 $2"
       str=$1/$2
       echo "Concatenated String ${str}"
       echo "${str}"
   }

// Dzwonię do powyższej funkcji

  constr=$(getConcatenatedString "hello" "world")
  echo "printing result"
  echo "${constr}"
  echo "exit"

Podczas uruchamiania skryptu z powyższym kodem widzę poniższe dane,

   printing result
   String1 hello
   String2 world
   Concatenated String hello/world
   hello/world
   exit

Jeśli spojrzysz na kod, najpierw wywołam funkcję, a następnie powtarzam instrukcję „wynik drukowania”, ale w rezultacie najpierw pojawia się „wynik drukowania” i echo instrukcji wewnątrz funkcji. Czy poniższa instrukcja wywołuje funkcję

   constr=$(getConcatenatedString "hello" "world")

lub

   echo ${constr}

dzwoni funkcja?

Ponieważ jeśli komentuję #echo $ {constr}, nic się nie odbija! Proszę, wyjaśnij mnie.

questionAnswers(3)

yourAnswerToTheQuestion