書式
breakpoint

概要

breakpoint コマンドは
現在動作中のスクリプトを停止し、
対話的デバッグプロンプトを立ち上げます。

詳しくは、
Documentationのfishスクリプトのデバッグ
を参照してください。

パラメータは一切取りません。

訳注:実行例

原文には
まったく具体例がなくて不親切ですので、
こちらで具体例を加えました。

以下のように足し算を行う
簡単なfishスクリプトを用意します。

ファイル名は
breakpoint1.fish
にします。

まずはbreakpointは
コメントアウトして
実行されないようにします。

#!/usr/bin/fish
echo Starting script...
set a 1
set b 2
# breakpoint
printf "%d + %d = %d" $a $b (expr $a + $b)
echo $c

実行すると

$ ./breakpoint1.fish
Starting script...
1 + 2 = 3

このように正しく表示されて終了します。

そこでbreakpointの行の
コメントアウト(#)を
外してから実行します。

「Starting script...」で
実行が停止します。

$ ./breakpoint1.fish
Starting script...

プロンプトが変わらないので
わかりづらいですが、
確かに実行は停止しています。

この段階で
スクリプトで使われている
変数を参照・変更できます。

その他
任意のfishのコマンドを実行できます。

$ echo $a $b
1 2
$ set b 9999
$ 
# Ctrl+D
1 + 9999 = 10000
$

bの値を書き換え、実行を終了しました。

以下のように
関数ローカルな変数 を含む場合でも
同様に動作します。

#!/usr/bin/fish
echo Starting script...
function func
        set -l a 1
        set -l b 2
        breakpoint
        printf "%d + %d = %d" $a $b (expr $a + $b)
        echo $c
end
func

fishスクリプトの動作がおかしいときは是非ともbreakpointを使ってください。

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。