John Zoidberg wrote:
> I would like to create a shellscript which can take any ROOT macro (with
> 0,1 or more variables) as argument, launch root, execute the macro with
> the given arguments and write the output into a .out file and the errors
> into a .err file.
Here's how I pass arguments to my Root macro (this is a bash script): ARGS="$*" $ROOTSYS/bin/root -n -l macro.C
The ARGS are names of Root files to read:
// open files given in environment variable ARGS const char *args = gSystem->Getenv("ARGS"); if(!args) args = ""; TObjArray *files = TString(args).Tokenize(" \t"); for(int i=0; i<files->GetEntries(); ++i) { TObjString *s = files->At(i); if(!s || *s->String().Data() == '\0') continue; TFile *f = new TFile(s->String().Data(),"READ"); if(f->IsZombie()) new TGMsgBox(gClient->GetRoot(),window,"Error", "File could not be opened!"); //self-deleting } files->Delete(); delete files;
Yes, this fails if any filename contains a space....
Tom Roberts Received on Sat Mar 10 2007 - 02:46:50 CET
This archive was generated by hypermail 2.2.0 : Sat Mar 10 2007 - 11:50:01 CET