[R6RS] Scripts vs. S-expression library names (not)
dyb at cs.indiana.edu
dyb at cs.indiana.edu
Sun Jul 30 15:53:06 EDT 2006
> I didn't think this through yesterday: It basically doesn't matter
> what's after the #!/usr/bin/env in the first line of a script. Unix
> might parse it in an arbitrary way (splitting at the spaces usually),
> but the Scheme script interpreter can and should re-read that first
> loine anyway, ignoring what's in argv.
Actually, we may not be able to put anything but scheme-script after
/usr/bin/env. I just ran the following experiment on two linux's (Redhat
and Gentoo), FreeBSD, SunOS, and MacOS X.
echo 'echo $# $*' > scheme-script
echo '#!/usr/bin/env scheme-script (my script) bar' > foo
chmod +x scheme-script foo
PATH=.:$PATH
foo
Here are the results:
Redhat 9: /usr/bin/env: scheme-script (my script) bar: No such file or directory
Gentoo: /usr/bin/env: scheme-script (my script) bar: Permission denied
FreeBSD 6: env: scheme-script (my script) bar: No such file or directory
SunOS 5.8: 1 ./foo
MacOS 10.4: 4 (my script) bar ./foo
The Linux and FreeBSD results are essentially the same and indicate that
/usr/bin/env is handed the entire rest of the command line as a single
argument. Under SunOS and MacOS X, the trick works, but the command
line arguments are different.
Maybe we should switch to something like this:
#!/usr/bin/env scheme-script\r #!r6rs <library-name> <entry-name>
Kent
More information about the R6RS
mailing list