在内联shell中,我输入echo $(max 15 2)
但没有得到任何答案?
为什么会这样?
代码:
function max {
if [ "$1" -eq "$2" ]
then
return $1
else
if [ "$1" -gt "$2" ]
then
return $1
else
return $2
fi
fi
}
答案 0 :(得分:3)
将return
替换为echo
,您的代码可以正常使用。
答案 1 :(得分:0)
来自评论:
用echo替换return,你的代码运行正常。 - Blender
$(...)
语法专门用于为您提供命令的输出,即使该命令恰好是函数调用。函数返回类似于整个脚本的退出;它设置了它的状态,这是一个0到255范围内的整数。(这与你可能习惯使用的其他语言完全不同,返回用于从函数返回一个值。) - Keith Thompson
Bash功能与其他语言的功能不同。它们的行为与任何其他命令相同:它们可以接受命令行参数,从标准输入读取,写入标准输出和标准错误,并以退出状态返回。它们 - 严格来说 - 不返回计算值。 - chepner