#### 2.1.1 Command Line Options

Here is a complete list of all the command line options that Octave accepts.

`--debug`
`-d`
  Enter parser debugging mode. Using this option will cause Octave's parser to print a lot of information about the commands it reads, and is probably only useful if you are actually trying to debug the parser.
`--echo-commands`
`-x`
  Echo commands as they are executed.
`--exec-path` path
  Specify the path to search for programs to run. The value of path specified on the command line will override any value of `OCTAVE_EXEC_PATH` found in the environment, but not any commands in the system or user startup files that set the built-in variable `EXEC_PATH`.
`--help`
`-h`
`-?`
  Print short help message and exit.
`--info-file` filename
  Specify the name of the info file to use. The value of filename specified on the command line will override any value of `OCTAVE_INFO_FILE` found in the environment, but not any commands in the system or user startup files that set the built-in variable `INFO_FILE`.
`--info-program` program
  Specify the name of the info program to use. The value of program specified on the command line will override any value of `OCTAVE_INFO_PROGRAM` found in the environment, but not any commands in the system or user startup files that set the built-in variable `INFO_PROGRAM`.
`--interactive`
`-i`
  Force interactive behavior. This can be useful for running Octave via a remote shell command or inside an Emacs shell buffer. For another way to run Octave within Emacs, see Emacs.
`--no-history`
`-H`
  Disable command-line history.
`--no-init-file`
  Don't read the `~/.octaverc` or `.octaverc` files.
`--no-line-editing`
  Disable command-line editing.
`--no-site-file`
  Don't read the site-wide `octaverc` file.
`--norc`
`-f`
  Don't read any of the system or user initialization files at startup. This is equivalent to using both of the options `--no-init-file` and `--no-site-file`.
`--path` path
`-p` path
  Specify the path to search for function files. The value of path specified on the command line will override any value of `OCTAVE_PATH` found in the environment, but not any commands in the system or user startup files that set the built-in variable `LOADPATH`.
`--silent`
`--quiet`
`-q`
  Don't print the usual greeting and version message at startup.
`--traditional`
`--braindead`
  Set initial values for user-preference variables to the following values for compatibility with Matlab.

                  PS1                           = ">> "
                  PS2                           = ""
                  beep_on_error                 = true
                  crash_dumps_octave_core       = false
                  default_save_format           = "mat-binary"
                  fixed_point_format            = true
                  page_screen_output            = false
                  print_empty_dimensions        = false
                  warn_function_name_clash      = false

`--verbose`
`-V`
  Turn on verbose output.
`--version`
`-v`
  Print the program version number and exit.
file
  Execute commands from file.

Octave also includes several built-in variables that contain information about the command line, including the number of arguments and all of the options.

— Built-in Variable: argv

> The command line arguments passed to Octave are available in this variable. For example, if you invoked Octave using the command

>               octave --no-line-editing --silent

> `argv` would be a cell array of strings with the elements `--no-line-editing` and `--silent`.

> If you write an executable Octave script, `argv` will contain the list of arguments passed to the script. See Executable Octave Programs, for an example of how to create an executable Octave script.

— Built-in Variable: program_invocation_name
— Built-in Variable: program_name

> When Octave starts, the value of the built-in variable `program_invocation_name` is automatically set to the name that was typed at the shell prompt to run Octave, and the value of `program_name` is automatically set to the final component of `program_invocation_name`. For example, if you typed ``/usr/local/bin/octave`' to start Octave, `program_invocation_name` would have the value `"/usr/local/bin/octave"`, and `program_name` would have the value `"octave"`.

> If executing a script from the command line (e.g., `octave foo.m`) or using an executable Octave script, the program name is set to the name of the script. See Executable Octave Programs, for an example of how to create an executable Octave script.

Here is an example of using these variables to reproduce Octave's command line.

         printf ("%s", program_name);
         for i = 1:nargin
           printf (" %s", nth (argv, i));
         endfor
         printf ("\n");

See Index Expressions, for an explanation of how to properly index arrays of strings and substrings in Octave, and See Defining Functions, for information about the variable `nargin`.