【发布时间】:2013-01-01 16:17:39
【问题描述】:
如何返回大于255的数字
function returnnumber(){
x=256
return $x
}
returnnumber
echo "value: $?"
我想输入 256 并返回 256
但是 256 返回 0。
【问题讨论】:
如何返回大于255的数字
function returnnumber(){
x=256
return $x
}
returnnumber
echo "value: $?"
我想输入 256 并返回 256
但是 256 返回 0。
【问题讨论】:
你不能! Shell 函数实际上并没有返回任何东西,它们只是以退出状态退出,就像其他 UNIX 命令一样。和其他 UNIX 命令一样,它们的 exit status 必须是无符号字节。
如果你想存储一个命令的输出(包括函数),你可以用通常的方式捕获它的标准输出。
d() {
echo 'hi'
}
x=$(d)
echo "$x"
hi
【讨论】:
在 bash 中,return 不会像您期望的其他编程语言那样做:
一个简单命令的 return 值是它的退出状态,或者 128+n 如果 该命令由信号 n 终止。
此代码将起作用:
#!/bin/bash
function returnnumber(){
echo $1
}
returnnumber 256
【讨论】: