リターンコードを取得
BASHでリターンコードを取得
$?で直前のコマンドのリターンコードを取得できる
mkdir hoge
echo "$?"
- リターンコード
成功 -> 0
失敗 -> 1
リターンコードの受け取り方
実行に失敗した場合に呼び出し元に返り値をそのまま返したい時
#!/bin/bash
function hoge(){
mkdir hoge
# ディレクトリ作成に失敗したら返り値を返して抜ける
if [ $? -ne 0 ];then
exit "$?"
fi
# 処理の続き...
}
echo "`hoge`"
とやると上手くいかない
$?は直前のコマンド実行結果を拾ってくるらしい
この場合、exit "$?"で返されるのはif文の条件整合結果
#!/bin/bash
function hoge(){
mkdir hoge
# ディレクトリ作成に失敗したら返り値を返して抜ける
result=$?
if [ ${result} -ne 0 ];then
exit "${result}"
fi
# 処理の続き...
}
echo "`hoge`"
こんな感じで受け取ってやればOK