Function 将函数的返回值赋给变量;在unixshell脚本中
我试图打印testfunction返回的值。但它没有显示任何东西。我使用Function 将函数的返回值赋给变量;在unixshell脚本中,function,shell,unix,Function,Shell,Unix,我试图打印testfunction返回的值。但它没有显示任何东西。我使用/filename.sh执行脚本。请帮忙 #!/bin/ksh testfunction() { k=5 return $k } val=$(testfunction) echo $val 函数返回的值存储在$?中,而不是由$()捕获 换言之: testFunction() { k=5 echo 3 return $k } val=$(testFunction) echo $?
/filename.sh
执行脚本。请帮忙
#!/bin/ksh
testfunction()
{
k=5
return $k
}
val=$(testfunction)
echo $val
函数返回的值存储在
$?
中,而不是由$()
捕获
换言之:
testFunction()
{
k=5
echo 3
return $k
}
val=$(testFunction)
echo $? # prints 5
echo $val # prints 3
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
您尝试执行的操作将捕获val变量中函数中的最后一个值“回声”
val=$(testFunction)
如果您想捕获函数的返回值,那么应该使用$?[即echo$?]这是最后一个退出状态