bashで戻り値とexit statusがごっちゃになっていたのでメモ。

[参考] https://www.shell-tips.com/bash/functions/ https://eng-entrance.com/linux-shellscript-function

戻り値

function func1(){
    echo "2"
    echo "err" >&2
    return 1
}
return_value=`func1`
rc=$?

上記コードでreturn_valueに格納される値「2」。function内で標準出力に出力した内容がすべて格納される。標準エラー出力に出力した内容は含まれない。

exit status

上記コードでrcに含まれる値「1」。8bitの範囲である0-255の範囲しか指定できない。