「less」をゼロ以外のステータスコードで終了させますか?


10

次のコマンド構造にしたいと思います。

command && check-status | less && followup-command

これにより、ユーザーがと対話してlessいる間、実行が一時停止します。ユーザーは、実行lessを防ぐためにfollowup-command、ゼロ以外のステータスで強制的に終了することができますか?

私は現在使用しています less 458 (POSIX regular expressions)

回答:


14

単純なケースでは、lessSIGINTを処理しないように要求Control-Cすると、SIGINTを強制終了し、終了コードがゼロ以外になります。オプションでこれを行います-K

command && check-status | less -K && followup-command

lessの古いバージョンの回避策として、次のようなことができます

command && bash -c 'trap "exit 1" int;check-status | less -K;' && followup-command

がない場合-Kは省略しますが、シグナルを送信してからquitと入力する必要があります。


less -Kそれでも、ctrl-cで0の終了コードを返します。Macではv418、Linuxではv436。less -K test; echo $? => 0
Matt

悲しいね。用me.Theのmanページのためのv458およびV481にそれの[OK]を-K明示的には述べています(ステータス2を持つ)の出口...。あなたのですか?
なんと

男性のみが言うCauses less to exit immediately> greenwoodsoftware.com/less/news.443.html
Matt

古いlessの回避策を追加しました。
meuh

2
まだ終了していない場合、^Cも強制check-status終了することに注意してください。
ステファンChazelas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.