Examples/コマンドを実行してその結果を取り込む

Last-modified: 2021-09-30 (木) 11:12:12

LSFに投入したジョブの状態を取得したい場合など、外部のコマンドの結果を取り込みたいことがありますが、これはそのサンプルです。

bjobs コマンドの結果を取り込む

(let ((pid (ipcBeginProcess "bjobs -o 'JOBID STAT JOB_NAME'")))
  (ipcWait pid)
  (and (zerop (ipcGetExitStatus pid))
    (ipcReadProcess pid)))
→ "JOBID  STAT JOB_NAME\n376290 RUN  virtuoso\n373414 WAIT calibre_lvs\n"

上のコードのでは、コマンドの実行終了ステータスコードが 0(正常終了)でない場合には nil を返して、0 の場合はコマンドの出力内容の文字列を返すようにしてあります。

出力内容に含まれる改行文字列はそのままの形で返されますので、この結果を parseString 関数などで適宜処理することで、欲しい情報を得ることができます。