return $?
$?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值,请猛击《Shell $?》了解更多。
$()或者``捕获结果。
#!/bin/bash
sum=0 #全局变量
function getsum(){
for((i=$1; i<=$2; i++)); do
((sum+=i)) #改变全局变量
done
return $? #返回上一条命令的退出状态
}
read m
read n
if getsum $m $n; then
echo "The sum is $sum" #输出全局变量
else
echo "Error!"
fi
运行结果:
#!/bin/bash
function getsum(){
local sum=0 #局部变量
for((i=$1; i<=$2; i++)); do
((sum+=i))
done
echo $sum
return $?
}
read m
read n
total=$(getsum $m $n)
echo "The sum is $total"
#也可以省略 total 变量,直接写成下面的形式
#echo "The sum is "$(getsum $m $n)
运行结果:$()捕获了第一个 echo 的输出结果,它并没有真正输出到终端上。除了$(),你也可以使用``来捕获 echo 的输出结果,请猛击《Shell变量》了解两者的区别。$(),而是直接调用函数,那么就会将结果直接输出到终端上,不过这貌似也无所谓,所以我推荐这种方案。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有