Re: bash script in mathematica?
- To: mathgroup at smc.vnet.net
 - Subject: [mg117918] Re: bash script in mathematica?
 - From: mmausr <opngid at gmail.com>
 - Date: Mon, 4 Apr 2011 06:30:53 -0400 (EDT)
 - References: <in6ki7$2ja$1@smc.vnet.net>
 
Here is some sample code you might find helpful.  This example runs
under Windows using the cygwin environment to run the bash script.
The RunScript command creates a bash script on the fly containing the
command for the script to run.  The output of the command run from the
bash script is redirected to a temp file and then fed back to
Mathematica using the FilePrint command.
RunScript[command_, workdir_] := Module[{
   script = $TemporaryPrefix <> "\\script",(* Windows temp space *)
   output = "c:\\cygwin\\tmp\\output",(* Cygwin temp space *)
   shell = "c:\\cygwin\\bin\\bash.exe "},
  Put[OutputForm["#!/bin/bash"], script];
  PutAppend[
   OutputForm["export PATH=/usr/local/bin:/usr/bin:/bin:$PATH"],
   script];
  PutAppend[OutputForm["cd " <> workdir], script];
  PutAppend[OutputForm[command <> " >> " <> output], script];
  (* Mma writes DOS style format text files by default *)
  Run["c:\\cygwin\\bin\\dos2unix " <> script];
  Run[shell <> script, String];
  FilePrint[output]]
Remember to change the paths to reflect how cygwin is installed on
your particular machine.