次のコマンド構造にしたいと思います。
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)
回答:
単純なケースでは、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と入力する必要があります。
-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