LESSOPENによってコマンドが中断されるのはなぜですか?

LESSOPENによってコマンドが中断されるのはなぜですか?

less環境変数を使用して特定のファイルのフィルタリングされたバージョンを読み取ろうとしますが、LESSOPENプリプロセッサがどんなに単純であってもSIGINTCtrl + Cを介して送信されるまでコマンドは中断されます。

LESSOPEN='||cat' less foo bar

私がここで何を間違っているのか? (別のバッファで複数のファイルを開くと、入力をパイプで接続することはできません。)

答え1

%sそれがなければ、catファイル名を取得できないことを忘れました。標準入力から入力を待ちます。

LESSOPEN='||cat %s' less foo bar # works
LESSOPEN='||cat' less foo bar # hangs

これマンページ説明する:

入力前処理装置を設定するには、入力前処理装置を呼び出すコマンドラインにLESSOPEN環境変数を設定します。コマンドラインには "%s"文字列を1回含める必要があり、入力プリプロセッサコマンドが呼び出されるとファイル名に置き換えられます。

関連情報