我经常需要ssh到一个远程系统,如果面对N分钟不活动(N很小),将终止我的连接。我已经厌倦了被踢掉并失去工作/背景,仅仅是因为,例如,我在网上看了一些东西,花了一点时间。
我一直试图想出一个简单的脚本,我可以在后台运行,只是偶尔向终端发送少量输出,所以我不会被注销。
当然,理想情况下,我希望输出不干扰我正在做的事情,无论我做什么 - 纯文本,诅咒无论如何。
所以我正在寻找一些能够重置I / O计时器的tput功能,但会导致屏幕外观出现noop。我发现了许多接近的事情,但到目前为止,如果时机错误,所有这些都可能导致故障。
我目前正在做的是
echo -e "$(tput sc)$(tput rc)\c"
(保存光标,恢复光标)。到目前为止,这对我很有帮助,但是我确定在一些curses程序执行它自己的保存/恢复并搞砸之前它只是时间问题。
cub和/或cuf(光标向后,光标向前)看起来几乎可以工作。如果他们中的任何一个在给定0参数时没有移动光标,那正是我正在寻找的。但是,不幸的是,对于我来说,0的行为与1完全相同(光标在任何方向上移动一个位置)。至少,对于我使用的终端来说,确实如此。
echo -e "$(tput cub1)$(tput cuf1)"
效果很好,除非光标位于屏幕的左边缘时发生。在这种情况下,cub1什么都不做,但是cuf1会移动光标。
如果我改掉它们:
echo -e "$(tput cuf1)$(tput cub1)"
然后我只会在光标位于屏幕右边缘时发生故障,我想这可能不太经常发生。仍然...
如果我能弄清楚如何获得光标的当前位置,我会得到它,然后用它来杯到它已经存在的位置。但似乎并不是获得光标当前位置的方法。 (或者我只是想念它?)
如果我的终端支持mrcup,参数的0和0可以工作,但它没有。
像
这样的事情echo -e '\c'
和
cat /dev/null
导致什么都没有到终端,所以不要重置不活动计时器。
似乎应该有一些简单的方法。
有什么想法吗?
答案 0 :(得分:0)
我想我拥有它:
echo -e '\000\c'