#### 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 recording a session in a file called `diary` in the current working directory.

  off

    Stop recording the session in the diary file.

  filename

    Record 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 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.

  See also: PS4.