导致 `less` 以非零状态代码退出?

use*_*160 11 less user-interface exit-status

我想要以下命令结构:

command && check-status | less && followup-command
Run Code Online (Sandbox Code Playgroud)

这将在用户与 交互时暂停执行less。用户如何强制less以非零状态退出以防止followup-command运行?

我目前正在使用 less 458 (POSIX regular expressions)

meu*_*euh 15

在简单的情况下,您可以要求less不处理 SIGINT,然后Control-C将其杀死并且退出代码将为非零。使用选项执行此操作-K

command && check-status | less -K && followup-command
Run Code Online (Sandbox Code Playgroud)

作为旧版本的解决方法,您可以执行以下操作

command && bash -c 'trap "exit 1" int;check-status | less -K;' && followup-command
Run Code Online (Sandbox Code Playgroud)

如果您没有-K,请忽略它,但您必须发出信号,然后也键入 quit。

  • 请注意,如果尚未完成,`^C` 也会终止 `check-status`。 (2认同)