在 ruby 脚本中的命令

at command in ruby script

我有一个简单的 ruby 脚本,它将在特定时间后发送邮件,这是我的代码:

#!/usr/bin/env ruby
system("at now + 1 day <<END
echo 'This is test message from xyz' | mail -s 'Test message' someone@example.com
END")

每当我 运行 这个脚本时,我得到

sh: END: not found

编辑 1

如果我在单行上使用

system("at now + 1 min echo 'This is test message from xyz' | mail -s 'Test message' someone@example.com")

它给出错误:

syntax error. Last token seen: e

Garbled time

这里哪里做错了?

at 单行形式可以像 echo 'COMMAND' | at WHEN

你可以试试这个:

system("echo \"echo 'This is test message from xyz' | mail -s 'Test message' someone@example.com\" | at now + 1 day")