以前に実行された4つのコマンドシーケンスを実行したいとしましょう。コマンド履歴の最初の項目が432の場合は、次のことができます。
$ !432; !433; !434; !435
これを達成するより効率的な方法があるかどうか疑問に思います。
ベストアンサー1
最近実行されたコマンドを参照する場合、より効率的なアプローチは負の数で参照することです。
!-4; !-3; !-2; !-1
また、これを行うと、最後の履歴エントリに完全なコマンドチェーンが含まれるため、Repeat itを使用できます!!
。
編集する:
この強力な組み込み機能にまだ慣れていない場合fc
、ザイルズが言及。 (を使用しますhelp fc
。)負の数も使用できることがわかったので、上記の操作を使用できます。
eval "`fc -ln -4 -1`"
しかし、これには注意があります。その後、そのeval
行は最後のコマンドとして履歴に保存されます。したがって、これをやり直すとループに閉じ込められます。
より安全なアプローチは、基本的なfc
作業モードを使用することです。つまり、選択したコマンド範囲をエディタに渡し、終了後に実行します。努力する:
fc -4 -1
コマンド範囲の順序を逆にすることもできます。fc -1 -4