次のコマンド構造にしたいと思います。
command && check-status | less && followup-command
これにより、ユーザーがと対話してless
いる間、実行が一時停止します。ユーザーは、実行less
を防ぐためにfollowup-command
、ゼロ以外のステータスで強制的に終了することができますか?
私は現在使用しています less 458 (POSIX regular expressions)
次のコマンド構造にしたいと思います。
command && check-status | less && followup-command
これにより、ユーザーがと対話してless
いる間、実行が一時停止します。ユーザーは、実行less
を防ぐためにfollowup-command
、ゼロ以外のステータスで強制的に終了することができますか?
私は現在使用しています less 458 (POSIX regular expressions)
回答:
単純なケースでは、less
SIGINTを処理しないように要求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と入力する必要があります。
-K
明示的には述べています(ステータス2を持つ)の出口...。あなたのですか?
Causes less to exit immediately
> greenwoodsoftware.com/less/news.443.html
^C
も強制check-status
終了することに注意してください。
less -K
それでも、ctrl-cで0の終了コードを返します。Macではv418、Linuxではv436。less -K test; echo $? => 0