Writing portable scripts

To write scripts that don't require to specify the full path to csi, the following technique might be useful:

 #! /bin/sh
 #|
 exec csi -s $0 "$@"
 |#

Another approach would be to have a trampoline script that invokes csi with these contents:

 % cat runscheme
 #!/bin/sh
 exec csi -s $*

and use this header in your scheme script:

 #!/usr/bin/env runscheme
 ...