IRISのターミナルで複数行にわたるObjectScriptコマンドを実行する方法
これは InterSystems FAQ サイトの記事です。
一番簡単な方法は、以下のコミュニティ記事にある ObjectScript Lite Terminalを使用する方法です。
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>ディスカッション (0)0