加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 匹配STDOUT中的字符串时运行进程

发布时间:2020-12-15 21:00:34 所属栏目:安全 来源:网络整理
导读:我正在使用 Jekyll运行我的博客,我认为当本地开发服务器完成启动时,在新的浏览器选项卡中自动打开网站是个不错的主意. 当你运行jekyll serve时,你会得到如下输出: Configuration file: /Users/jgt/Sites/jezen.github.io/_config.yml Source: /Users/jgt/Si
我正在使用 Jekyll运行我的博客,我认为当本地开发服务器完成启动时,在新的浏览器选项卡中自动打开网站是个不错的主意.

当你运行jekyll serve时,你会得到如下输出:

Configuration file: /Users/jgt/Sites/jezen.github.io/_config.yml
        Source: /Users/jgt/Sites/jezen.github.io
   Destination: dist
  Generating...
                done.
Configuration file: /Users/jgt/Sites/jezen.github.io/_config.yml
    Server address: http://0.0.0.0:4000/
  Server running... press ctrl-c to stop.

我曾想过在子shell中运行jekyll serve并听取它的输出.也许我可以同时启动并发无限循环,读取一些stdout并运行打开http://0.0.0.0:4000然后在匹配时运行字符串“Server running”时退出.我的bash-fu尚未达到我可以一起破解的程度.

我该怎么做呢?

解决方法

你可以在bash中做这样的事情:

(jekyll serve) | while read line; do 
    [[ $line =~ "Server running" ]] && open http://0.0.0.0:4000
done

这将在子shell中运行jekyll,并将stdout传递给循环.然后它使用bash正则表达式匹配来匹配包含单词“Server running”的行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读