显示文本文件并在文件内容更改时更新

时间:2015-08-30 18:35:24

标签: bash

我希望打开一个窗口,它只是文件file.txt的内容。我不关心我用它来打开它,nano, cat, vi或其他什么。我想让它在每次更改时都更新,所以如果我在另一个窗口中打开它,编辑并保存它,原始窗口中的文件将会更新,有点像screen。有什么建议吗?

我已经尝试过每隔几秒就打开一个新的cat file.txt命令,但它非常不可靠。

4 个答案:

答案 0 :(得分:6)

使用

watch cat file.txt

如果发生任何变化,应该更新,也可以尝试

man watch

要查看它有哪些选项,您可以更新更新的频率。

答案 1 :(得分:4)

案例kendo.data.binders.widget.customValue = kendo.data.Binder.extend({ init: function (widget, bindings, options) { kendo.data.Binder.fn.init.call(this, widget.element[0], bindings, options); var that = this; $(widget.element).on('change', function () { that.change(); }); }, . . . change: function() { // this method will now be triggered debugger; } }); 中的低技术解决方案不可用:

compile files('libs/<filename>.jar') 

(让您轻松调整检查间隔)。

答案 2 :(得分:2)

在Linux上,您可以像inotifywait command那样使用:

#!/bin/sh
while inotifywait --event modify file.txt; do
    tput clear
    cat file.txt
done

是手册页中示例2 的修改版本。这有很大的好处,在修改file.txt之前绝对不做任何事情。建议轮询的答案存在轮询始终存在的问题:当没有任何变化时,它会浪费时间,并且在轮询间隔结束之前它将无法捕获变化。

答案 3 :(得分:1)

如果您使用的是macOS,则可能没有按标准安装watch。您可以选择低技术含量的解决方案-无论如何还是很优雅的,但是您也可以还原为home-brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

您可能(一次!)将其(管理)密码提供给它。安装完成后,您应该始终检查系统:

brew doctor

应该有一条信息:

  

您的系统已准备就绪。

现在您可以安装watch了:

brew install watch

完成后,即可通过@ dave-mackintosh准备解决方案:

watch cat file.txt