函数返回值接收处理
目录
第一种方式:echo ${var}
在函数fun()内部使用echo + 结果的方式
#!/bin/bash
fun(){
#echo "pls enter two num!"
read num1
read num2
ret=`expr ${num1} + ${num2}`
#ret1=$((${num1}*${num2}))
echo ${ret}
}
ret1=`fun`
echo "---------- ${ret1}"
#:<<EOF
if [ ${ret1} == 4 ]
then
printf "true!!!\n"
else
printf "false!!!\n"
fi
echo "over"
#EOF
注意:不要在函数里随便使用echo输出一些不要紧的信息到主程序,否则,很容易导致函数返回的结果不确定性!
第二种方式:return ${var}
#!/bin/bash
fun(){
echo "pls enter two num!"
read num1
read num2
ret=`expr ${num1} + ${num2}`
#ret1=$((${num1}*${num2}))
return ${ret}
}
fun
#:<<EOF
if [ $? == 4 ]
then
printf "true!!!\n"
else
printf "false!!!\n"
fi
echo "over"
#EOF
注意:此种方式可以在fun()函数里使用echo,不受限制,但是在函数调用后,要立马使用$?,在使用$?之前,觉对不能echo一些无关信息....一次也不行,否则$?不会是函数return的结果!