emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Batch execution and --script


From: Thorsten Jolitz
Subject: Re: [O] Batch execution and --script
Date: Wed, 29 Aug 2012 20:59:18 +0200
User-agent: Gnus/5.130002 (Ma Gnus v0.2) Emacs/24.0.93 (gnu/linux)

Marcelo de Moraes Serpa <address@hidden> writes:

Hi Marcelo,

> This is a subject that should be explored more. I see a lot of
> potential in having CLI .el scripts (i.e taking the emacs GUI out of
> the equation).

I once asked a related question on stackoverflow, and recieved this
answer that shows how to 
- become more independent of the location of the emacs executable
- pass more than one argument on the shebang line
at the same time: 

,-----------------------------------------------------------------------------
|      Many unix variants only allow a single argument to the program on      
|      the shebang line. Sad, but true. If you use #!/usr/bin/env emacs so    
|      as not to depend on the location of the emacs executable, you can't    
|      pass an argument at all.                                               
|                                                                             
|      Chaining scripts is a possibility on some systems, but that too is     
|      not supported everywhere.                                              
|                                                                             
|      You can go the time-honored route of writing a script that is both     
|      a shell script and an Emacs Lisp script (like Perl's if                
|      $running_under_some_shell, for example). It sure looks hackish, but    
|      it works.                                                              
|                                                                             
|      Elisp comments begin with ;, which in the shell separates two          
| up   commands. So we can use a ; followed by a shell instruction to         
| vote switch over to Emacs, with the actual Lisp code beginning on the       
| 21   next line. Shells don't like an empty command though, so we need to    
| down find something that both the shell and Emacs treat as a no-op, so      
| vote put before the ;. The shell no-op command is :; you can write it       
|      ":" as far as the shell is concerned, and Emacs parses that as a       
|      constant at top level which is also a no-op.                           
|                                                                             
|      #! /bin/sh                                                             
|      ":"; exec emacs --no-site-file --script "$0" -- "$@" # -*-emacs-lisp-*-
|      (print (+ 2 2))                                                        
`-----------------------------------------------------------------------------


Maybe thats interesting for you. The full question is here: 
http://stackoverflow.com/questions/6238331/emacs-shell-scripts-how-to-put-initial-options-into-the-script

-- 
cheers,
Thorsten




reply via email to

[Prev in Thread] Current Thread [Next in Thread]