2016-05-31 5 views
0

я с простой рубиновый скрипт, который будет отправлять почту через некоторое время, это мой код:по команде в рубиновый скрипт

#!/usr/bin/env ruby 
system("at now + 1 day <<END 
echo 'This is test message from xyz' | mail -s 'Test message' [email protected] 
END") 

всякий раз, когда я запускаю этот сценарий, я получаю

ш: END: не найдены

Edit 1

Если я использую на одной линии, как

system("at now + 1 min echo 'This is test message from xyz' | mail -s 'Test message' [email protected]") 

дает ошибку:

ошибку синтаксиса. Последний маркер видел: е

Искажение времени

, что я делаю неправильно в этом?

+0

что делает команда 'END'/шаблон делать? – emaillenin

+0

@emaillenin Я использовал его для многострочной команды для 'system', если я ошибаюсь, чем будет правильным синтаксисом для отправки почты. ? – Rahul

+0

работает, если вы делаете то же самое с помощью одной строки? – emaillenin

ответ

3

at односторонний форма может быть echo 'COMMAND' | at WHEN.

Вы можете попробовать это:

system("echo \"echo 'This is test message from xyz' | mail -s 'Test message' [email protected]\" | at now + 1 day") 
+0

ваше предложение приведет меня к 'at>' командной строке, которую я не хочу. Я хочу, чтобы этот скрипт отправил почту – Rahul

+0

, спасибо, вот что я хотел. но не могли бы вы объяснить мне немного. почему вы использовали двойное 'echo'? – Rahul

+1

@arzyfex имеет значение только первое «эхо», второе «эхо» - это просто «КОМАНДА». – delta