I am running SAS 9.3 under Windows 7 on a Parallels 9 VM installed on an iMac w/ OS X 10.7.5 (currently, but soon to be upgraded to Mavericks).
I was given a SAS program that runs on Unix systems. The program reads in many files and uses a SAS command to escape to the shell and run a shell script on them before reading them in. While the program has instructions for modifying it to run on non-Unix operating systems, in essence these instructions call for doing manually what the script does automatically. Since the data are continually updated, the program will be run frequently, and manually processing the files will become extremely time-consuming and tedious.
Since Windows is running under OS X and Parallels aims to provide seamless integration between the two systems, the Unix-version ought to work. But I don't know how to make it do so.
On Unix systems, SAS interfaces with (the user's default) Unix shell by adding the keyword "PIPE" to a file identification statement. The file handle defined by the statement can then be used for output to the shell (by writing to Unix's STDIN) or input from the shell (by reading from Unix's STDOUT). For example, the following statement would define a SAS input stream containing data about every process currently running SAS:
filename ps_list PIPE "ps -e | grep 'sas' "
(This particular example comes from the documentation. It's trickier than what I need to do. The example wants every process currently running SAS, but very likely Windows knows about SAS processes while Unix [OS X] does not. My program simply wants to use Unix commands to manipulate files, which SAS will then read; so the program is not really asking Unix to know system-level information from Windows.)
Can someone out there please help with this?