有人可以解释如何使用cPanel管道选项来运行ruby脚本吗?基本上我想在每次收到电子邮件时运行ruby脚本。然后我想使用电子邮件中的数据在脚本中做一些事情。
在pipe_test.rb脚本中,我正在尝试这样的事情:
email_data = STDIN.read
# Get email address
#....
# Do somthing with the email address
#...
更新#1
经过一些阅读后,我能够通过运行ruby pipe_test.rb test
从shell中获取此脚本。
email_data = ARGV[0]
# Save data to a file
File.open("test_pipe_data.txt", 'w') { |file| file.write(email_data) }
# Get email address
#....
# Do somthing with the email address
#...
然而,当我将脚本添加到"管道到程序" cPanel中的文件路径选项似乎没有运行脚本。我尝试添加以下文件路径选项组合,但没有一个工作:
home/pipe_test.rb
home/pipe_test.rb test
home/ruby pipe_test.rb test
home/ruby ‘pipe_test.rb test’
home/‘ruby pipe_test.rb’
home/‘ruby pipe_test.rb test’
更新#2
看起来我的问题的一部分是我需要在我的脚本顶部添加Shebang行,以便shell知道用于运行脚本的程序。所以我把它添加到最顶层:
#!/usr/bin/env ruby
我通过运行确认这是正确的道路:
which ruby
然后我要将./pipe_test.rb
cPanel管道添加到程序路径中。现在的问题是当我从shell运行./pipe_test.rb
时它会说:
: No such file or directory
我已经运行echo $PATH
以确保路径存在且确实存在。所以我再次陷入困境。
答案 0 :(得分:0)
请在此处阅读有关管道的信息:https://en.wikipedia.org/wiki/Pipeline_%28Unix%29
同时检查:https://mikegriffin.ie/blog/20160525-using-pipe-with-ruby-scripts
您的第一步应该是弄清楚从cPanel到ruby脚本的内容。