elisp: Batch Mode

 
 38.17 Batch Mode
 ================
 
 The command-line option ‘-batch’ causes Emacs to run noninteractively.
 In this mode, Emacs does not read commands from the terminal, it does
 not alter the terminal modes, and it does not expect to be outputting to
 an erasable screen.  The idea is that you specify Lisp programs to run;
 when they are finished, Emacs should exit.  The way to specify the
 programs to run is with ‘-l FILE’, which loads the library named FILE,
 or ‘-f FUNCTION’, which calls FUNCTION with no arguments, or ‘--eval
 FORM’.
 
    Any Lisp program output that would normally go to the echo area,
 either using ‘message’, or using ‘prin1’, etc., with ‘t’ as the stream,
 goes instead to Emacs’s standard descriptors when in batch mode:
 ‘message’ writes to the standard error descriptor, while ‘prin1’ and
 other print functions write to the standard output.  Similarly, input
 that would normally come from the minibuffer is read from the standard
 input descriptor.  Thus, Emacs behaves much like a noninteractive
 application program.  (The echo area output that Emacs itself normally
 generates, such as command echoing, is suppressed entirely.)
 
    Non-ASCII text written to the standard output or error descriptors is
 by default encoded using ‘locale-coding-system’ (SeeLocales) if it
 is non-‘nil’; this can be overridden by binding
 ‘coding-system-for-write’ to a coding system of you choice (See
 Explicit Encoding).
 
  -- Variable: noninteractive
      This variable is non-‘nil’ when Emacs is running in batch mode.