如何避免mailx中的“寻呼机”?

U. *_*ndl 5 pager mailx

我的收件箱中有很多短邮件,这很烦人,即使是通过寻呼机(较少)发送短消息,也需要按“q”才能查看下一条消息(例如)。

我阅读了有关寻呼机的手册页,但这些都不起作用:

PAGER= mailx
set pager=
unset pager
unset PAGER
Run Code Online (Sandbox Code Playgroud)

如何禁用寻呼机?我正在使用 SLES 15 SP3 的 mailx 12.5。

Ste*_*itt 10

有两个主要问题阻碍了该问题的简单解决:

\n
    \n
  1. 如手册mailx中所示(SLES 附带 Nail\xe2\x80\x99s mailx),\xe2\x80\x9c 环境中的变量传递给mailx无法取消设置。\xe2\x80\x9d

    \n
  2. \n
  3. PAGER(从 内部设置mailx)不能有参数,因此类似set PAGER="LESS=-F less"或 的set PAGER="sh -c LESS=-F less"东西不起作用。\n更糟糕的是,如果您尝试类似 的东西,则没有输出set PAGER="less -F"

    \n
  4. \n
\n

所以替代方案是:

\n
    \n
  1. mailx如果消息适合单个屏幕,可以配置为跳过寻呼机,方法是设置crt(通常需要终端的行数)配置为跳过寻呼机:

    \n
    set crt\n
    Run Code Online (Sandbox Code Playgroud)\n

    给你的.mailrc. 如果没有值,SLES 中可用的版本mailx将使用当前屏幕高度;POSIX 不\xe2\x80\x99t 指定未设置值时的行为crt,因此符合 POSIX 标准的方法是将其设置为 99999 (始终跳过寻呼机)或工作环境的典型值(仅使用必要时使用寻呼机)。

    \n
  2. \n
  3. 分页器也可以替换为非分页显示工具,例如 cat在启动时mailx从类似 Bourne-shell 的解释器

    \n
    PAGER=cat mailx\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
  5. 如果您的寻呼机是less,您可以使用其-F选项(再次使用sh语法)要求其退出而不提示:

    \n
    LESS=F mailx\n
    Run Code Online (Sandbox Code Playgroud)\n

    如果您想-F与您中设置的其他选项结合使用LESS结合使用,请使用

    \n
    LESS="$LESS -F" mailx\n
    Run Code Online (Sandbox Code Playgroud)\n

    这通常可以通过导出LESS=F(以及任何其他less在 shell 启动脚本中导出(以及默认情况下要启用的

    \n

    在 530 之前的版本中less,您可能需要结合使用-F-X(LESS=FX )。

    \n
  6. \n
\n