linux - 将尾部输出通过管道传输到当前正在运行的 bash 脚本

标签 linux bash shell

所以我有一个脚本可以启动服务并跟踪日志文件直到服务最终初始化。我使用以下方法来实现这一点: Linux: Block until a string is matched in a file ("tail + grep with blocking")

现在,我希望我的用户在拖尾开始时看到拖尾文件的输出,这样他们就可以跟踪服务的进度。我知道一些关于此的方法,例如生成一个新窗口并将所有尾部输出通过管道传输到新句柄。这仅在用户位于实际工作站但脚本通过 SSH 进行远程交互时有效。所以这对我来说行不通。

我希望这里有人知道如何将尾部通过管道传输到正在运行的窗口,同时将尾部文件的输出保持在一行。我想避免将所有输出输出到脚本屏幕。

如果我说得太含糊了,请告诉我。我可以发布屏幕截图以帮助更好地解释我想要实现的目标。

谢谢

最佳答案

我不确定我是否清楚地了解了您的所有要求,ssh 是 100% 必需的吗?

这是您*可以做到的方式:

#if grep command succeeds then enter infinite loop to repeatedly post to netcat server for remote processing
if (grep -q 'PATTERN'); then
  while :
      tail -n 1 | nc -l 3333

您可以通过以下方式连接到它:

nc <you_other_server's_ip> 3333

关于linux - 将尾部输出通过管道传输到当前正在运行的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29659528/

相关文章:

linux - 过滤 netstat 输出以获取 bash 中的特定端口

linux - 在 do 循环中将参数传递给 awk

linux - 使用多文件括号扩展时 SCP 不传输文件

c - 具有重定向输出应用程序的 Linux C TCP 套接字客户端/服务器

bash - 如何连接两个命令的输出?

bash - 有没有办法知道 `script` 命令是否在当前 bash session 中运行?

python - 如何在 python 中导入已完成进程的环境变量?

linux - 终端上的命令行管道语法

c++ - GPS应用程序编译错误

c - 换行符未出现在 proc 文件中