Shell 函数返回值
1 语法上的返回值
Shell函数返回值不同于很多语言的返回值。
Shell函数返回值:表示退出状态码,只能返回0~255之间的整数。
返回值的正规用途:表示这条命令是执行成功,还是执行失败。执行成功返回0,执行失败返回非0值。
通常,我们不返回值,会自动返回0,表示执行成功。
什么时候需要表示执行失败?
Shell用退出状态码的常用场景:if条件、 语句&& 、语句|| 。如果我们函数用于这些场景,才会去设置返回值。
查看返回值(退出状态码)
$? 返回上一条语句(命令)的退出状态码。
function f6(){
return 100
}
f6
#查看返回状态码
echo $?
f6 && echo "666666"
if `f6` ;then
echo "条件成立"
else
echo "条件不成立"
fi
echo end
将上述代码返回值改为0,或者去掉return这一句,再执行。
2 业务返回值
比如:求和,要返回和;返回一个提示信息的字符串给调用方。
这类返回值,我们称之为业务返回值,不要通过return来传递,严重不规范。
Shell语言没有正式语法来实现返回业务返回值,曲线救国。
方法1:在Shell文件定义一个全局变量,函数内部修改全局变量,调用方访问这个全局变量。
缺陷:除了记函数名,还要记一个额外的全局变量名。
方法2:返回值通过echo打印,调用函数后通过``来执行命令替换。
#业务返回1个字符串
f1(){
echo "网站地址:www.xiaobuteach.com"
}
a=`f1`
echo $a
缺陷:只有返回值能echo,其它内容不要echo;如果是要调试,可借助其它手段看调试信息,例如输出到文件。
优点:知道函数名就能使用。