Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 将函数的返回值赋给变量‎;在unixshell脚本中_Function_Shell_Unix - Fatal编程技术网

Function 将函数的返回值赋给变量‎;在unixshell脚本中

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 $?

我试图打印testfunction返回的值。但它没有显示任何东西。我使用
/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$?]这是最后一个退出状态