5

如何返回大于 255 的数字

function returnnumber(){
    x=256
    return $x
}

returnnumber
echo "value: $?"

我想输入 256 和 256 返回

但是 256 返回 0。

4

2 回答 2

6

你不能!Shell 函数实际上并不返回任何内容,它们只是以退出状态退出,就像其他 UNIX 命令一样。和其他 UNIX 命令一样,它们的退出状态必须是无符号字节。

如果要存储命令的输出(包括函数),可以按通常的方式捕获其标准输出。

d() {
    echo 'hi'
}
x=$(d)
echo "$x"
hi

这是Wooledge 的关于从命令中获取值的 wiki

于 2013-01-18T01:02:17.527 回答
5

在 bash 中,return不会像您期望的其他编程语言那样做:

简单命令的返回值是它的退出状态,如果命令被信号 n 终止,则返回128+ n

此代码将起作用:

#!/bin/bash

function returnnumber(){
    echo $1
}

returnnumber 256
于 2013-01-18T01:02:50.927 回答