コマンド出力をローカル変数に代入する際のエラーコードチェック
皆さん、bashでよく
result=`command` ret=$?
みたいにしてエラーハンドリングされてると思いますが、もしこれが関数内で
local result=`command` ret=$?
みたいにしたらどうなると思います?
実は、$? は必ず0になってしまうのですよ!!
local がコマンドだからぽい。local が正常終了し、その戻り値が$?にセットされてしまってる。
対策としては
local result result=`command` ret=$?
とか。