【问题标题】:Number greater than 255 in bash shell scriptbash shell 脚本中大于 255 的数字
【发布时间】:2013-01-01 16:17:39
【问题描述】:

如何返回大于255的数字

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

returnnumber
echo "value: $?"

我想输入 256 并返回 256

但是 256 返回 0。

【问题讨论】:

    标签: bash shell


    【解决方案1】:

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

    如果你想存储一个命令的输出(包括函数),你可以用通常的方式捕获它的标准输出。

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

    这里是Wooledge's wiki on getting values from commands

    【讨论】:

      【解决方案2】:

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

      一个简单命令的 return 值是它的退出状态,或者 128+n 如果 该命令由信号 n 终止。

      此代码将起作用:

      #!/bin/bash
      
      function returnnumber(){
          echo $1
      }
      
      returnnumber 256
      

      【讨论】:

        猜你喜欢
        • 2013-12-11
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        • 2013-10-26
        • 1970-01-01
        • 2018-02-23
        • 1970-01-01
        • 2013-02-10
        相关资源
        最近更新 更多