Peter Anglea <pe...@peteranglea.com> writes:

> I’m trying to use the -e (--evaluate) option to define a hash, not
> just a single variable. For instance
>
>       lilypond -e ‘((define myhash (make-hash-table))(hashq-set!
> myhash ‘foo “bar”))’ file.ly
>
> The above doesn’t work. I think, obviously, it’s breaking at the
> single quote – ‘foo.

Can you try telling your mail client that it shouldn't mangle quotes?
It's hard to guess what you actually wrote.  At any rate, you have an
extra level of parens that is meaning-changing.  Assuming we are talking
about a Bourne-style shell, you probably want to write something like

lilypond -e "(begin (define myhash (make-hash-table))(hashq-set! myhash 'foo 
\"bar\"))' file.ly

Or, if you prefer the other kind of quotes:

lilypond -e '(begin (define myhash (make-hash-table))(hashq-set! myhash '\''foo 
"bar"))' file.ly

Or, evading the problem

lilypond -e '(begin (define myhash (make-hash-table))(hashq-set! myhash (quote 
foo) "bar"))' file.ly

> I’ve tried escaping it with a backslash (\’foo) and a couple other
> things, but nothing seems to work.

Maybe read up on the quoting conventions of your shell?

> Is it possible to run complex Scheme code in the command line option,
> and/or am I just not escaping special characters the right way?

Probably the latter.

-- 
David Kastrup

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to