2


script1.sh と script2.sh という 2 つのシェル スクリプトがあります。script1.sh から script2.sh を呼び出しています。script2.sh では、いくつかの評価が行われ、その結果に基づいてフラグが設定されています。ここで、フラグを script1.sh に渡す必要があります。これに基づいて、script1.sh が実行を継続するか終了するかが決定されます。私は関数を使用していません。フラグをエクスポートしている間、script1.shでは空白です。
私の質問は、 script2.sh からフラグを返すにはどうすればよいですか?
助けはありますか?何か案は?共有する経験?

4

3 に答える 3

3

結果を印刷して、script1 に取り込むことができます。

# Script 1
flag="$(./script2.bash)"

と:

# Script 2
[...]
printf '%s\n' "$flag"

これが役立つことを願っています=)

于 2012-10-17T14:08:50.440 に答える
2

script2 の終了ステータスを使用するだけです。

if script2.sh ; then
   echo Exited with zero value
else
   echo Exited with non zero
fi

フラグを設定するには、script2 で or をexit 0使用します。exit 1

于 2012-10-17T14:10:05.833 に答える
1

script2.sh(se by the statement exit {value})からの戻りコードを使用することを期待します。

例えば

./script2.sh

$?script2.shの exit ステートメントからの戻り値が含まれます。

ここでは使用できませんexportexport後続のサブプロセスで変数を使用できるようにします。サブプロセスに固有の変数のコピーを変更しているため、値を親プロセスに戻すために使用することはできません。

于 2012-10-17T14:08:06.557 に答える