5

で255より大きい数値を返す方法

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

returnnumber
echo "value: $?"

256と256リターンを入力したかった

しかし、256は0を返します。

4

2 に答える 2

6

できません!シェル関数は実際には何も返しません。他の 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 に答える