Next: Kawa Implementation of Asymmetric Encryption Keys Via KeyPairGenerator, Previous: Running Kawa Command Scripts, Up: Kawa Scheme [Contents][Index]
If you need to specify extra arguments to kawa
, you can run arbitrary shell
commands inside Scheme block comments.
#!/bin/sh #| exec kawa out:base=16 out:radix=yes "$0" "$*" |# (format #t "The command-line is:~{ ~w~}.~%" (command-line)) (display "It has ") (display (apply + (map string-length (command-line)))) (display " characters.") (newline)
The trick is to hide the shell code from Kawa inside a ‘#|...|#’ block-comment.
The start of the block comment is a line starting with a ‘#’, so it is treated
as a comment by the shell. You can then invoke kawa
(or java
directly) as
you prefer, setting up class-path and jars as needed, and passing whatever
arguments you want. You need to make sure the shell finishes before it reaches
the end of the block comment or the Scheme code, which would confuse it.
Using comments this way has the advantage that you have the option of running the script “manually” if you prefer:
$ kawa /tmp/scm-echo out:base=8 "x y" The command-line is: "/tmp/scm-echo" "out:base=8" "x y". It has 26 characters.