提示符號(Prompt)

Octave 預設的提示符號是 octave:##>## 代表行號,Octave 允許使用者自訂提示符號,以下是一些可以用在自訂提示符號的變數:

  • \t:時間。
  • \d:日期。
  • \n:Begins a new line by printing the equivalent of a carriage return followed by a line feed.
  • \s:Octave 程式名稱,通常是 “octave”。
  • \w:目前的工作目錄名稱。
  • \W:不含路徑的目前工作目錄名稱。
  • \u:目前的使用者名稱。
  • \h:簡短的主機名稱。
  • \H:完整的主機名稱。
  • \#:行號,從開啟 Octave 時開始計算。
  • \!:指令紀錄中的行號,與 \# 的差異在於 Octave 開啟時所載入的指令紀錄行數。
  • \$:若 UID 為 0,則顯示 #,否則顯示 $。
  • \nnn:以八進位 nnn 指定字元。
  • \\:顯示反斜線。

Octave 的提示符號可以透過下列函數查詢與變更:

val = PS1()
old_val = PS1(new_val)

PS1() 用來查詢或設定 Octave 主要的提示符號,當 Octave 準備好可以讓使用者輸入指令時,就會顯示主要提示符號,預設是 "\s:\#> ",若要更改則使用 new_val 參數指定新的提示符號,例如:

PS1 ("\\t[\\#]> ")

這會將提示符號更改為類似 15:48:46[20]> 這個樣子。

若是使用雙引號輸入反斜線,則需要將反斜線重複一次,若是使用單引號則不需要,例如:PS1 ('\t[\#]> ')
val = PS2()
old_val = PS2(new_val)

PS2() 用來查詢或設定 Octave 次要的提示符號,當使用者無法在一行會輸入所有的指令時,第二行之後的提示符號會顯示次要提示符號,更改方式與 PS1() 類似,預設為 ">"

val = PS4()
old_val = PS4(new_val)

PS4() 用來查詢或設定 echo 輸出的前置字元(prefix),主要用於 echo 指令,預設是 "+ "

Diary 與 Echo

Octave 的 diary 功能可以將使用者所有的操作紀錄至檔案中,包含所有的輸入的指令與輸出的結果:

diary options
diary 指令可以將所有輸入的指令與其所產生的輸出訊息記錄至檔案中,就像螢幕上所看到的一樣,可用的參數有:
  • on:開始紀錄。
  • off:停止紀錄。
  • file:檔案名稱。

有時候我們會想看 Octave 執行到函數或指令稿(script)中的哪一個部分,例如在除錯的時候,可以使用 echo 函數:

echo options

echo 可設定使否顯示函數或指令稿(script)中正在執行的指令,可用的參數有:

  • on:開啟指令稿的顯示功能。
  • off:關閉指令稿的顯示功能。
  • on all:開啟函數與指令稿的顯示功能。
  • off all:關閉函數與指令稿的顯示功能。
val = echo_executing_commands ()
old_val = echo_executing_commands (new_val)

查詢或設定 Octave 內部用來控制 echo 的變數,此數值可以是以下數值任意的總和:

  • 1:顯示從指令稿檔案(script files)中讀取而執行的指令。
  • 2:顯示在函數中執行的指令。
  • 4:顯示從指令列讀取而執行的指令。

例如要開啟函數與指令稿的顯示功能(即 echo on all),則將此數值設定為 31 + 2

echo_executing_commands (3)
事實上此變數是依照第幾個位元被設定而決定哪個功能被開啟,1 的二進位是 001b(第一個位元被設定),2010b(第二個位元被設定),3 則是 100b(第三個位元被設定)。而 1 + 2 = 3,是 011b(第一個與第二個位元被設定)。