記事 Hiroshi Sato · 14時間 前 2m read

IRISのターミナルで複数行にわたるObjectScriptコマンドを実行する方法

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

一番簡単な方法は、以下のコミュニティ記事にある ObjectScript Lite Terminalを使用する方法です。

VSCodeだけでIRISターミナル完結

IRISのコマンドをターミナルから実行する場合は、即時実行と複数行のコードを一度にまとめて実行する2つの実行方法があります。
即時実行の場合は、1個または複数のコマンドを1行で入力して、リターンキーを入力することで実行します。
即時実行の場合、複数行にまたがって一度に実行することはできません。

複数行をまとめて実行する場合には、予め複数行のコードをルーチンバッファーと呼ばれるメモリー上に一時的に保存して、一度に実行することができます。

ルーチンバッファーにコードを入力するためには、

ラベルの後ろにスペースまたはタブを入力した後に実行したいコードを入力します。
2行目以降は、スペースまたはタブを入力した後に実行したコードを入力します。

コードを入力し終わったら、以下のように実行することで、複数行まとめて実行できます。

>Do [先頭に指定したラベル名]

ルーチンバッファーの内容を確認するには、zprintコマンドを使用します。
以下はルーチンバッファーに複数行のコードを保存して、実行する例です。

USER>aaa ※ この後ろに1回tabスペース入力してEnterしルーチンバッファにラベル行を入力
USER> SET users = $LISTBUILD("a","b","c","d","e") ※ 行の先頭に1回tabスペース入力してコマンドを記述しEnterすることでルーチンバッファに1行入力
USER> SET ptr = 0
USER> WHILE $LISTNEXT(users,ptr,value) {
USER> WRITE value,!
USER> }
USER>zprint ※ルーチンバッファの内容を表示
aaa
        SET users = $LISTBUILD("a","b","c","d","e")
        SET ptr = 0
        WHILE $LISTNEXT(users,ptr,value) {
               WRITE value,!
        }
 
USER>do aaa ※ラベル行より実行
a
b
c
d
e
USER>