LC Server: shebang breaks tags?

Richard Gaskin ambassador at
Fri Feb 7 23:04:33 EST 2020

LC Server 6.6 and later allows you to use LC as you would other system 
utility languages, by including the path to the engine on the first line 
following a shebang - see discussion here:

This lets us use the old MetaCard style with command line scripts, 
without needing to put "<?lc" and "?>" around the code.

But oddly, it seems that running a script this way not only doesn't need 
to comment wrappers, it actually tries to execute them - and of course 

For example, this script:

     #! ./lcs

     put the long date && the long time

...throws this error:

    row 3, col 1: script: not a command (<)

Weirder, I've found that if I omit the shebang and call the engine 
directly in the path on the command line it runs well:


What is it about the shebang that's breaking execution in comment blocks?

I have a need to embed code within larger blocks of non-code, and had 
considered using LC Server as a helper app for that.* It doesn't matter 
much to me if I launch it with the app path or not, but since most of my 
systems have LC Server installed for general use it would be nice to use 
the shebang method.  So this seeming anomaly is certainly not critical, 
just odd.

* Yes, I know I can use the merge function for this, but LC desktop's 
merge is far more limited to the implicit merge that happens when using 
LC Server.

The merge function doesn't continue code execution across blocks of code 
separated by non-code, whereas LC Server does this well:

     <?lc if there is a file "something" then ?>
     This is some non-code
     <?lc else ?>
     Some other non-code
     <?lc end if ?>

Maybe we could have the desktop merge function expanded to work like 
Server's implicit merge?  That would be most awesome.

  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  Ambassador at      

More information about the use-livecode mailing list