Назначьте возвращаемое значение функции переменной в оболочке unix script
Я попытался напечатать значение, возвращенное из тестовой функции. Но это ничего не показывает. Я использовал ./filename.sh для выполнения script. Пожалуйста, помогите
Значение, возвращаемое функцией, сохраняется в $? и не фиксируется $().
Другими словами:
testFunction()
{
k=5
echo 3
return $k
}
val=$(testFunction)
echo $? # prints 5
echo $val # prints 3
Ответ 2
Эти функции ksh работают:
IPADDRESS() # get the IP address of this host
{
# purpose: to get the IP address of this host
# and return it as a character string
#
typeset -l IPADDR
IPADDR=$(ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{print $2}')
print $IPADDR
}
IP_Address=$(IPADDRESS)
echo $IP_Address
exit