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

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

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

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

PAGER= mailx
set pager=
unset pager
unset PAGER

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

答案1

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

  1. 如中所示手册mailx(SLES 提供 Nail mailx),“传递给的环境中的变量mailx不能被取消设置。”

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

所以替代方案是:

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

    set crt
    

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

  2. 分页器也可以换成非分页显示工具,例如 catmailx当从类似 Bourne shell 的解释器启动时:

    PAGER=cat mailx
    
  3. 如果您的寻呼机是,您可以使用其选项(再次使用语法)less要求其退出而不提示(如果它要显示的文本量少于屏幕的文本量):-Fsh

    LESS=F mailx
    

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

    LESS="$LESS -F" mailx
    

    通常可以通过在 shell 启动脚本中导出(以及默认情况下要启用的LESS=F任何其他选项)来启用此功能。less

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

相关内容