Content #
return命令允许指定一个整数值作为函数的退出状态码:
$ cat test5
#!/bin/bash
# using the return command in a function
function dbl {
read -p "Enter a value: " value
echo "doubling the value"
return $[ $value * 2 ]
}
dbl
echo "The new value is $?"
$
dbl函数会将\(value变量中用户输入的整数值翻倍,然后用return命令返回结果。脚本用\)?变量显示出该结果。
当用这种方法从函数中返回值时,一定要小心。为了避免出问题,牢记以下两个技巧。
- 函数执行一结束就立刻读取返回值。
- 退出状态码必须介于0~255。
如果在用\(?变量提取函数返回值之前执行了其他命令,那么函数的返回值会丢失。记住,\)?变量保存的是最后执行的那个命令的退出状态码。
第二个技巧界定了返回值的取值范围。由于退出状态码必须小于256,因此函数结果也必须为一个小于256的整数值。大于255的任何数值都会产生错误的值: $ ./test5 Enter a value: 200 doubling the value The new value is 1 $ 如果需要返回较大的整数值或字符串,就不能使用return方法。
From #
Linux命令行与shell脚本编程大全