Fc 組込みコマンドはコマンド履歴に記録されたコマンドを再実行・表示します。
fc [-qr] [-e エディタ] [始点 [終点]]
fc -s[q] [前=後] [始点]
fc -l[nrv] [始点 [終点]]
-l
(--list
) オプションを付けずに実行すると、fc コマンドはオペランドで指定したコマンド履歴のコマンドを再実行します。-s
(--silent
) オプションを付けていない場合、シェルはコマンドを再実行する前にエディタを起動し、コマンドを編集できるようにします。エディタが終了するとシェルは編集後のコマンドを実行します。-s
(--silent
) オプションを付けた場合、シェルはエディタを起動せず直接コマンドを再実行します。いずれの場合も、実行するコマンドは標準出力に出力しコマンド履歴に追加されます。
-l
(--list
) オプションを付けて実行すると、fc コマンドはオペランドで指定した範囲のコマンド履歴を標準出力に出力します。標準では履歴内のコマンドの内容を履歴番号とともに表示しますが、-n
(--no-numbers
) および -v
(--verbose
) オプションにより出力形式を変更できます。
-e エディタ
, --editor=エディタ
FCEDIT
変数の値をエディタとして使用します。FCEDIT
変数も設定されていない場合は、vi をエディタとして使用します。
-l
, --list
-n
, --no-numbers
-q
, --quiet
-r
, --reverse
-s
, --silent
-v
, --verbose
始点と終点のオペランドは、再実行または表示するコマンドの範囲を指定します。始点あるいは終点に整数を指定すると、それは履歴番号とみなします。負の整数は最新の履歴から数えた番号となります。例えば -2
は最後から二番目に履歴に登録されたコマンドを表します。整数以外の文字列を始点あるいは終点に指定すると、その文字列で始まる最新の履歴を指定しているものとみなします。
Fc コマンドが再実行または表示するコマンドは、始点と終点で指定したコマンドとその間にある履歴のコマンドです。始点が終点より後のコマンドを指している場合、コマンドの順序は逆になります。
始点または終点が与えられていない場合のデフォルト値は以下の表のとおりです。
オペランド | -l 指定時 | -l 非指定時
|
---|---|---|
始点 | -16 | -1 |
終点 | -1 | 始点と同じ |
前=後の形式のオペランドは、コマンドの一部を書き換えることを指示します。再実行するコマンドの中に前と同じ文字列がある場合は、その部分を後に置き換えて実行します。
コマンドを正しく再実行できた場合、fc コマンドの終了ステータスは再実行したコマンドの終了ステータスになります。-l
(--list
) オプションを指定した場合は、履歴が正しく出力できれば終了ステータスは 0 です。
Fc コマンドは準特殊組込みコマンドです。
POSIX には -q
(--quiet
) および -v
(--verbose
) オプションに関する規定はありません。よってこれらのオプションは POSIX 準拠モードでは使えません。