bash shell脚本中的数字大于255

Jos*_*ole 5 bash shell

如何返回大于255的数字

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

returnnumber
echo "value: $?"
Run Code Online (Sandbox Code Playgroud)

我想输入256和256返回

但256返回0.

koj*_*iro 6

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

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

d() {
    echo 'hi'
}
x=$(d)
echo "$x"
hi
Run Code Online (Sandbox Code Playgroud)

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


Per*_*one 5

在bash中,return没有按照您的期望从其他编程语言中做到:

所述返回一个简单的命令的值是它的退出状态,或128+ Ñ如果命令是通过信号终止Ñ.

此代码将起作用:

#!/bin/bash

function returnnumber(){
    echo $1
}

returnnumber 256
Run Code Online (Sandbox Code Playgroud)