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