gpt4 book ai didi

ruby - Evolution 电子邮件客户端,管道到程序,代码始终返回 0

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:14 24 4
gpt4 key购买 nike

我在 Evolution 电子邮件客户端中使用“管道到程序”选项,该选项运行以下 ruby​​ 脚本

#!/usr/bin/ruby
%% example code below
junk_mail = 2
junk_mail

现在,无论 junk_mail 变量的值是什么,该程序始终返回 0。

我猜这与 Evolution 派生一个子进程来运行此代码有关,并且总是收到 0(干净退出)?

需要帮助。

编辑

我发现实际问题是从管道读取数据。以下代码在命令行中测试时工作正常,但从 Evolution 客户端调用时无法读取管道数据

#!/usr/bin/ruby
email_txt = ARGF.read
File.open("~/debug.txt", 'a') { |file| file.write(email_txt + "\n") }


$cat email.txt | ./myprog.rb

这会按预期提供 debug.txt,但是当从 Evolution 管道到程序调用时,它会提供空数据。

从外部程序调用时,我是否使用正确的方法读取管道流数据? (我使用的是 Fedora 20)。

最佳答案

使用退出:

#!/usr/bin/ruby

junk_mail = 2
exit junk_mail

您可以通过从 Linux 命令行运行它来测试它,然后通过回显退出值

echo $?

编辑

将 STDIN 读入单个字符串:

email_txt = STDIN.readlines.join

关于ruby - Evolution 电子邮件客户端,管道到程序,代码始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22285453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com