Next: Unix Shell Scripts, Previous: Unix Scheme Scripts, Up: Scripting [Contents][Index]
It turns out that we can create scheme-scripts which run both under unix
and MS-DOS. To implement this, I have written the MS-DOS programs:
#!.bat
and !#.exe
,
which are available from:
http://groups.csail.mit.edu/mac/ftpdir/scm/sharpbang.zip
With these two programs installed in a PATH
directory, we have
the following syntax for <program>.BAT files.
The first two characters of the Scheme-Script are ‘#!’. The interpreter can be either a unix style program path (using ‘/’ between filename components) or a DOS program name or path. The rest of the first line of the Scheme-Script should be literally ‘\ %0 %*’, as shown.
If interpreter has ‘/’ in it, interpreter is converted to a DOS style filename (‘/’ ⇒ ‘\’).
In looking for an executable named interpreter, #!
first
checks this (converted) filename; if interpreter doesn’t exist, it
then tries to find a program named like the string starting after the
last ‘\’ (or ‘/’) in interpreter. When searching for
executables, #!
tries all directories named by environment
variable PATH
.
Once the interpreter executable path is found, arguments are
processed in the manner of scheme-shell, with all the text after the
‘\’ taken as part of the meta-argument. More precisely, #!
calls interpreter with any options on the second line of the
Scheme-Script up to ‘!#’, the name of the Scheme-Script file, and
then any of at most 8 arguments given on the command line invoking this
Scheme-Script.
The previous example Scheme-Script works in both MS-DOS and unix systems.
Next: Unix Shell Scripts, Previous: Unix Scheme Scripts, Up: Scripting [Contents][Index]