記事
Mihoko Iijima · 2021年3月26日 2m read

Linux のシェルスクリプトでルーチンやメソッドの戻り値を取得する方法

これは InterSystems FAQ サイトの記事です。

Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。

詳細はドキュメント「インスタンスの接続について」 をご参照ください。

コマンド記述例は以下の通りです。

iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド"

 

シェルスクリプトへの戻り値の指定は、ルーチンやメソッド終了時に指定する QUIT や RETURN コマンドに引数を指定する方法ではなく、プロセス処理終了時に %SYSTEM.Process クラスTerminate() メソッドを使用して 特殊変数 $? に値を返す方法を利用します。

値は、0~255 を指定できます。 ルーチンでの利用例は以下の通りです。

// ルーチン名をTestとします
start1() public {
 hang 5  // 5秒待つ
 //第2引数に指定した数値がシェルスクリプトに戻ります
 set st=$system.Process.Terminate($JOB,11)
}

 

実行例は以下の通りです。

# iris session iris -U USER "start1^Test()"
# echo $?
11

 

クラスメソッドでの利用例は以下の通りです。

Class Test.Class1
{
ClassMethod test()
{
 hang 5 // 5秒待つ
 //第2引数に指定した数値が シェルスクリプトに戻ります
 set st=$system.Process.Terminate($JOB,12)
}
}

 

実行例は以下の通りです。

# iris session iris -U USER "##class(Test.Class1).test()"
# echo $?
12

 

関連情報もあります。以下、FAQサイトのトピックをご参照ください。

00
1 0 0 13
Log in or sign up to continue