【问题标题】:Output from ruby command is not shown in STDOUTruby 命令的输出未显示在 STDOUT 中
【发布时间】:2014-04-09 20:27:04
【问题描述】:

当我对另一个文件进行更改时,我有以下脚本输出正在呈现的文件的名称:

jade --watch --pretty index.jade

因为我在我的项目中经常使用它,所以我决定创建一个执行此操作的 rake 任务。但是当我启动 rake 任务时,文件会被渲染,但我不再看到输出。

我知道在这种情况下输出以某种方式流式传输到 STDOUT,这似乎与仅执行 ls 命令的行为不同。

这是我的 Rakefile:

desc 'Watch .jade files'
task :watch do
  puts `jade --watch --pretty index.jade`
end

【问题讨论】:

    标签: ruby macos bash terminal


    【解决方案1】:

    您看不到任何输出的原因是jade 在运行时会阻塞,只有在您杀死它时才会返回。如果你要杀死它,你会看到puts 生效。

    你想要的是使用system

    system("jade --watch --pretty index.jade")
    

    哪个会使用你进程的 STDOUT。

    【讨论】:

    • @besi 那个编辑绝对没有用,也没有必要。请贡献真正的工作,而不是只为徽章工作。
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多