-32-arg valuevalueをプログラムに渡す。-arg スイッチは複数指定できる。プログラム中では COMMAND_LINE_ARGS 関数により、渡された文字列を取得できる。-args value1 value2 ...value1, value2, ... をプログラムに渡す。文字列間はスペースで区切る。プログラム中では COMMAND_LINE_ARGS 関数により、渡された文字列を文字列型の配列として取得できる。-args スイッチ以降の文字列は全て -args スイッチの引数だとみなされるので、-args スイッチは全てのコマンドライン引数のなかで最後に置く必要がある。-batch-e statement-nl language-nl en で英語、-nl ja で日本語。-pref=file-quiet-vm=filenamefilenameでsaveファイルを指定する。Windows では idlrt コマンドを用いる。-rt=filenameidlrt コマンドを用いる。以下のスイッチはIDL 8.6以降ではサポートされない。
-demo-queue-ulicenseコマンドラインスイッチで、設定を一時的に変更してIDLを起動することができる。まず、設定を記述するファイル(ファイル名を test.pref とする)を作成する。設定項目名と値はコロンで区切る。
IDL_CPU_TPOOL_NTHREADS : 4IDL_GR_X_RETAIN : 2IDL起動時に -pref スイッチを用いてこのファイル (test.pref) をIDLに渡す。この方法は、アプリケーションごとに設定を切り替える場合に便利。
$ idl -pref=test.pref設定を個別に指定して起動するもことができる。-(ハイフンマイナス)の直後に設定項目名と、スペースを開けて値を書く。
$ idl -IDL_CPU_TPOOL_NTHREADS 4 -IDL_GR_X_RETAIN 2IDLは起動時の -e オプションで指定された文字列、または標準入力から与えられた文字列をIDLのステートメントとして実行することができる。
test.pro に含まれる、MAIN programを実行する。実行完了後にIDLは自動的に終了する。
$ idl -e '.r test'$ echo '.r test' | idltest.pro と test2.pro に含まれる、MAIN programを続けて実行する。csh の場合は echoの-e オプションは不要。
$ echo -e '.r test\n.r test2' | idltest3.pro または test3.sav に含まれる、ファイル名と同名のサブルーチンtest3を実行する。
$ idl -e test3$ echo test3 | idltest3.sav に含まれる、ファイル名と同名のサブルーチンtest3をIDL Virtual Machineで実行する。
$ idl -vm=test3.savバッチファイル test4.pro を実行する(バッチファイルでは末尾にENDステートメントは不要)。この方法でバッチファイルを実行する場合、実行完了後もIDLは自動的には終了しないので、終了させる場合はバッチファイル末尾に EXIT ステートメントを入れておく必要がある。バッチファイルを複数指定することで、複数のバッチファイルを続けて実行することもできる。
$ idl test4バッチファイル test4.pro を標準入力から与えたり、-e スイッチ経由で与えることもできる。この場合は、実行完了後にIDLは自動的に終了する。
$ idl < test4.pro$ cat test4.pro | idl$ idl -e '@test4'バッチファイルをシェルスクリプト中でヒアドキュメントとして与える。1行に複数のステートメントを書くときの区切り文字 & と行継続文字 $ を組み合わせれば、BEGIN~ENDブロックを伴う制御構造も利用できる。
#!/bin/shnum=10idl << EOMsum = 0FOR i=1, ${num} DO BEGIN &$ sum += i &$ PRINT, i, sum &$ENDFOREOMidlは開始時に環境変数 IDL_STARTUP で指定されたバッチファイルを実行する。環境変数 IDL_STARTUP で指定されたバッチファイルの実行完了後もIDLは自動的には終了しない。一般的に環境変数 IDL_STARTUP はユーザー独自のIDLの環境設定を行うのに用いられる。環境変数 IDL_STARTUP で指定されたバッチファイルは、idlの引数、標準入力、-e スイッチ経由で与えたプログラムよりも前に実行される。
一時的に環境変数 IDL_STARTUP を変更してidlを起動するには次のようにする。
# BASHの場合IDL_STARTUP=test4 idl# TCSHの場合( setenv IDL_STARTUP test4 ; idl )プログラムの実行が完了すると、一部の場合を除いてIDL は直ちに終了する。プロットの結果などを表示しておきたい場合は、DIALOG_MESSAGE 関数 や READ プロシージャなどで、ユーザーが何か操作をするまで一時停止させる。
$ idl -e "PLOT, SIN(FINDGEN(628)/100) & t = DIALOG_MESSAGE('Done')"$ idl -e "CONTOUR, DIST(100), NLEVELS = 60 & t = '' & READ, 'Press ENTER to exit', t"-arg または -args スイッチにより、文字列をプログラムに渡すことができる。-args スイッチはスペースで区切られた複数の文字列を渡すことができる。-args スイッチ以降の文字列は全て -args スイッチの引数だとみなされるので、-args スイッチは全てのコマンドライン引数のなかで最後に置く必要がある。プログラム中では COMMAND_LINE_ARGS 関数により、文字列の配列として取得できる。-arg または -args スイッチが指定されなかった時は、COMMAND_LINE_ARGS 関数は長さ0の文字列を返す。
$ idl -quiet -e 'PRINT, COMMAND_LINE_ARGS()' -arg HelloHello$ idl -quiet -e 'PRINT, COMMAND_LINE_ARGS()' -arg Hello -arg WorldHello World$ idl -quiet -e 'PRINT, COMMAND_LINE_ARGS()' -args Hello WorldHello World他に、シェルからプログラムに情報を渡すための簡単な方法としては、環境変数がある。IDLプログラム中で GETENV 関数を使うことで環境変数を取得できる。
$ export PARM=Hello$ idl -quiet -e "PRINT, GETENV('PARM')"