11
我試圖打印testfunction返回的值。但它沒有顯示任何東西。我用./filename.sh
來執行腳本。請幫助將函數的返回值分配給unix shell腳本中的變量
#!/bin/ksh
testfunction()
{
k=5
return $k
}
val=$(testfunction)
echo $val
我試圖打印testfunction返回的值。但它沒有顯示任何東西。我用./filename.sh
來執行腳本。請幫助將函數的返回值分配給unix shell腳本中的變量
#!/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