我试图打印从testfunction返回的值。但它没有显示任何东西。我使用./filename.sh
来执行脚本。请帮忙
#!/bin/ksh
testfunction()
{
k=5
return $k
}
val=$(testfunction)
echo $val
答案 0 :(得分:27)
函数返回的值存储在$?
中,$()
不会捕获。
换句话说:
testFunction()
{
k=5
echo 3
return $k
}
val=$(testFunction)
echo $? # prints 5
echo $val # prints 3
答案 1 :(得分:0)
您要执行的操作将在val变量中捕获函数中“回显”的最后一个值
val=$(testFunction)
如果要捕获函数的返回值,则应使用$? [即echo $?]是最后一个退出状态。
答案 2 :(得分:-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