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.