で255より大きい数値を返す方法
function returnnumber(){
x=256
return $x
}
returnnumber
echo "value: $?"
256と256リターンを入力したかった
しかし、256は0を返します。
できません!シェル関数は実際には何も返しません。他の UNIX コマンドと同様に、終了ステータスで終了するだけです。また、他の UNIX コマンドと同様に、終了ステータスは符号なしバイトでなければなりません。
コマンド (関数を含む) の出力を保存する場合は、通常の方法で標準出力をキャプチャできます。
d() {
echo 'hi'
}
x=$(d)
echo "$x"
hi
bash ではreturn
、他のプログラミング言語から期待されることを行いません。
単純なコマンドの戻り値は、その終了ステータス、またはコマンドがシグナルnで終了した場合は128+ nです。
このコードは動作します:
#!/bin/bash
function returnnumber(){
echo $1
}
returnnumber 256