【问题标题】:Monitor changes in stdin from a bash script从 bash 脚本监控标准输入的变化
【发布时间】:2020-11-15 14:31:27
【问题描述】:

我想制作一个 bash 工具作为脚本,以便在给定命令的输出发生更改时收到通知。例如,用例是在长脚本的输出发生变化时获得通知。我希望它与tee 命令在同一型号上使用:

any_long_script_to_run | my_tool 

然后输出将被透明地复制到标准输出,但我还想定义一个自定义函数(播放声音,显示通知......)以在每次写入新行时运行。

在 bash 中有什么巧妙的方法吗?

非常感谢!

【问题讨论】:

    标签: bash pipe stdout stdin tee


    【解决方案1】:

    创建通知的命令取决于您正在运行的操作系统/窗口管理器,但一个简单的答案是:

    any_long_running_command | while IFS= read -r line; do
        printf "\a%s\n" "$line"
    done
    

    \a 是“铃”字,通常会发出声音。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多