- PR -

シェルスクリプトにおけるexitやreturnのグルーピング

1
投稿者投稿内容
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-11-10 17:27
初歩的な質問かもしれませんが、
シェルスクリプトの中でexitやreturnをグルーピングするにはどうしたらいいのでしょうか?
if文を省略するために以下のような文を書いたのですが、exitやreturnが反応してくれません。

関数A || (echo 'NG' ; exit 1)
もしくは
関数A || (echo 'NG' ; return 1)

NGと表示した後、お構いなしに次の行を実行してしまいます
if文でならグルーピングする必要はないので実現は可能ですが、ゴツくなってしまうので、できれば使いたくありません。
また、なにかシェルスクリプトのルールを知らないまま使っているようで不安です。
ご存知の方、宜しくお願いします。
Landscape
会議室デビュー日: 2005/11/09
投稿数: 9
投稿日時: 2005-11-10 18:24
中括弧を使ってはいかがでしょう?
( ) によるグルーピングはサブシェルが作成されます。
そこで exit してもサブシェルから抜けるだけです。



#!/bin/sh

false || { echo NG; exit 1; }
false || { echo NG2; exit 1; }

_________________
Landscape - エンジニアのメモ
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-11-11 08:57
Landscapeさんご返答ありがとうございます。
お教え頂いた方法で上手く行きました。
リンク先も勉強になりそうです。
1

スキルアップ/キャリアアップ(JOB@IT)