DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(guile.info.gz) Command Line Args

Info Catalog (guile.info.gz) Command Line Handling (guile.info.gz) getopt-long
 
 10.1 Using Command Line Arguments
 =================================
 
 When a Guile script is invoked, Guile makes the command line arguments
 accessible via the procedure `command-line', which returns the
 arguments as a list of strings.
 
    For example, if the script
 
      #! /usr/local/bin/guile -s
      !#
      (write (command-line))
      (newline)
 
 is saved in a file `cmdline-test.scm' and invoked using the command
 line `./cmdline-test.scm bar.txt -o foo -frumple grob', the output is
 
      ("./cmdline-test.scm" "bar.txt" "-o" "foo" "-frumple" "grob")
 
    If the script invocation includes a `-e' option, specifying a
 procedure to call after loading the script, Guile will call that
 procedure with `(command-line)' as its argument.  So a script that uses
 `-e' doesn't need to refer explicitly to `command-line' in its code.
 For example, the script above would have identical behaviour if it was
 written instead like this:
 
      #! /usr/local/bin/guile \
      -e main -s
      !#
      (define (main args)
        (write args)
        (newline))
 
    (Note the use of the meta switch `\' so that the script invocation
 can include more than one Guile option:  The Meta Switch.)
 
    These scripts use the `#!' POSIX convention so that they can be
 executed using their own file names directly, as in the example command
 line `./cmdline-test.scm bar.txt -o foo -frumple grob'.  But they can
 also be executed by typing out the implied Guile command line in full,
 as in:
 
      $ guile -s ./cmdline-test.scm bar.txt -o foo -frumple grob
 
 or
 
      $ guile -e main -s ./cmdline-test2.scm bar.txt -o foo -frumple grob
 
    Even when a script is invoked using this longer form, the arguments
 that the script receives are the same as if it had been invoked using
 the short form.  Guile ensures that the `(command-line)' or `-e'
 arguments are independent of how the script is invoked, by stripping off
 the arguments that Guile itself processes.
 
Info Catalog (guile.info.gz) Command Line Handling (guile.info.gz) getopt-long
automatically generated byinfo2html