Perlスクリプトを活用したバッチ処理

普通、GrADSスクリプトを実行する場合には、まずgradsコマンドを起動してその後で

run hoge.gs

とする必要があり一手間余計にかかってしまう。そこで、Perlスクリプト内で自動化する方法を示す。

Perlスクリプトによるgradsスクリプトの実行

#!/usr/bin/perl
use strict;
use warnings;

my $script = 'hoge.gs';
open(PIPE,"|grads -bl") or die "open_error!";
print PIPE "run $script\n";
close(PIPE);

これで、perlスクリプトの実行のみでgradsスクリプトを実行できる。

Perlスクリプトによる複数のgradsスクリプトの実行

前項の例では、普通にgradsを起動してスクリプトをrunするのと手間は変わらないが
複数のgradsスクリプトを実行する場合には大幅に手間を軽減できる。

#!/usr/bin/perl
use strict;
use warnings;

my @scripts = glob "hoge*.gs";
  foreach my $script (@scripts) {
    open(PIPE,"|grads -bl") or die "open_error!";
    print PIPE "run $script\n";
    close(PIPE);
  }

この例では、正規表現を用いてhoge*.gsのスクリプトを自動で実行していくことができる。
例えば、hoge1.gs, hoge2.gs, hoge3.gsというスクリプトがあったら順次実行される。

最終更新:2013年07月18日 13:25