如何从Linux程序屏幕中读取最新行



i使用屏幕运行Minecraft Server .jar,我想编写一个bash脚本,以查看最近的行是否每五分钟左右更改。如果有的话,那么脚本将从开始开始,然后在五分钟内再次进行检查。如果没有,它将杀死Java过程。

我将如何通过bash脚本从屏幕上获取最后一行文本?

如果我理解,则可以在文件中重定向程序的输出并使用操作员>进行处理。尝试运行:

ls -l> myoutput.txt

并打开创建的文件。

您要使用tail命令。tail -n 1将为您提供文件的最后一行或重定向标准输出,而tail -f将保持tail程序进行直到您自己取消为止。

例如:

echo -e "JellonPuddingnSkittles" | tail -n 1 | if grep -q Skittles ; then echo yes; fi

第一部分只是打印三行文本:

Jello
Pudding
Skittles

tail -n 1找到了文本的最后一行(" Skittles"),并将其传递给下一节。

grep -q如果找到您的图案或错误,则只需返回true,而无需实际倾倒或输出任何内容。

因此,if grep -q Skittles部分将检查该grep -q Skittles模式的结果,如果发现Skittles,将" yes"打印到屏幕上。如果没有,则没有任何印刷(尝试用Pudding替换Skittles,即使它在原始输入中,它也从未将其列为tail -n 1调用的另一端)。

也许您可以使用该逻辑并输出.jar到标准输出,然后每5分钟搜索该输出?

最新更新