【问题标题】:Bash programming : How to run a program in a different "shell", similar to the CLI commands more|less etcBash 编程:如何在不同的“shell”中运行程序,类似于 CLI 命令 more|less 等
【发布时间】:2015-05-25 13:34:34
【问题描述】:

我的目标是从我的主 shell 运行一个程序,然后清除屏幕,在这个新清除的 shell 中显示所有输出,直到我的程序退出。那时,我不想在我的屏幕历史记录中看到该程序的所有输出。但我不想失去以前的历史。

清除、重置、清除 && printf '\e[3J' 不起作用。 Subshel​​l 保留历史记录,但也不工作。

谢谢

【问题讨论】:

  • “历史”是指终端模拟器中保存的文本行(例如,xterm、mate-terminal)吗? “shell”是指命令行解释器(例如 bash、csh)吗?你的程序是清屏还是手动清屏?
  • 你考虑过使用screen吗?
  • 你指的是很多终端类型提供的“备用屏幕”。

标签: linux bash shell


【解决方案1】:

试试这样的:

#!/bin/sh
tput smcup    # Save the display
...
echo 'Your program stuff...'
...
tput rmcup    # restore the display

【讨论】:

    【解决方案2】:

    如果只是显示脚本的输出,您可以简单地将其通过管道传输到less

    【讨论】:

    • 这是一个现场节目输出。请参阅上面 Eric 的回答,这符合我的需要。发送
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2023-04-04
    • 2015-07-03
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多