#### 2.4.8 Diary and Echo Commands ¶

Octave’s diary feature allows you to keep a log of all or part of an interactive session by recording the input you type and the output that Octave produces in a separate file.

diary ¶
diary `on` ¶
diary `off` ¶
diary `filename` ¶
`[status, diaryfile] =` diary ¶

  Record a list of all commands and the output they produce, mixed together just as they appear on the terminal.

  Valid options are:

  on

    Start or resume recording a session. If no filename has previously been specified recording will take place in a file called `diary` in the current working directory.

  off

    Stop recording the session in the diary file.

  filename

    Start or resume recording the session in the file named filename.

  With no input or output arguments, `diary` toggles the current diary state.

  If output arguments are requested, `diary` ignores inputs and returns the current status. The boolean status indicates whether recording is on or off, and diaryfile is the name of the file where the session is stored.

  See also: history, evalc.

Sometimes it is useful to see the commands in a function or script as they are being evaluated. This can be especially helpful for debugging some kinds of problems.

echo ¶
echo `on` ¶
echo `off` ¶
echo `on all` ¶
echo `off all` ¶
echo `function on` ¶
echo `function off` ¶

  Control whether commands are displayed as they are executed.

  Valid options are:

  `on`

    Enable echoing of commands as they are executed in script files.

  `off`

    Disable echoing of commands as they are executed in script and function files.

  `on all`

    Enable echoing of commands as they are executed in script files and functions.

  `off all`

    Disable echoing of commands as they are executed in script files and functions.

  `function on`

    Enable echoing of commands as they are executed in the named function.

  `function off`

    Disable echoing of commands as they are executed in the named function.

  With no arguments, `echo` toggles the current echo state.

  Programming Note: Echoing all commands can be a simple way to debug an easy coding problem. However, the amount of output can grow quite quickly. For more difficult problems the built-in debugger (`help debug`) is more useful.

  See also: PS4.