LoginSignup
3

More than 3 years have passed since last update.

シェルスクリプト return コマンド

Posted at

Java などでは、関数の戻り値を返すのに return を指定しますが、シェルにおいては単純に”シェル関数を終了するコマンド”になると思います。

終了ステータス0 でシェル関数を終了する

一般的に終了ステータス0 は正常終了とみなされます。

return-example1.sh
func()
{
  return 0
}
終了ステータス0 以外でシェル関数を終了する

一般的に終了ステータス0 以外は異常終了とみなされます。

return-example2.sh
func()
{
  if [ -f "$1" ]; then
    return 0 # 引数で指定したファイルが存在したため、正常終了
  fi
  return 1 # ファイルが存在しなかったため、異常終了
}
サブシェルでの return

サブシェル内で return コマンドを呼んだ場合、サブシェルを終了するが、シェル関数は終了しない。

return-example3.sh
func()
{
  (
    return 1 # サブシェルを抜ける(異常終了扱い)
  )
  echo $? # サブシェルでの終了ステータス"1"が得られる
  return 0 # シェル関数はここまで実行される(正常終了扱い)
}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3