我正在尝试开发一个rails应用程序,在这个应用程序中,它每分钟都要拍摄桌面的屏幕快照。我在网上搜索,找不到与这个任务相关的任何创业板文件。
因此,当我搜索屏幕截图时,我得到了一个命令scrot。在命令行中执行时,它将获取屏幕截图。但问题是我的Ruby文件不识别scrot命令。
有没有从Ruby文件执行scrot命令的方法?这个函数有任何创业板文件吗?
我知道什么时候可以从Ruby执行scrot命令。到了crontab就能解决我的问题。
我使用Ubuntu13.04作为我的操作系统。
这是我的TestsController,我需要在这里执行命令
class TestsController < ApplicationController
require 'fileutils'
include FileUtils
def link
return "http://" + root_domain
end
def new
puts pwd()
result = scrot()
end
end发布于 2014-04-29 10:36:57
我想您是Ruby的新手(这不是犯罪;-)。
在Ruby中,shell命令不能使用函数调用;有一些特殊的语法:
`echo hello`
#=> hello
%x{echo hello}
#=> hellopwd()之所以工作,仅仅是因为它是在irb中实现的Ruby函数;实际上,它只在irb中工作(除非您没有实现ir,或者您需要一个实现它的库)。
因此,为了以shell命令的形式运行scrot,您应该编写
def new
result = `scrot` # or
result = %x{scrot}
end发布于 2014-04-29 10:16:12
您可以从ruby脚本中运行任意代码,方法是将它包含在backticks中。
Scrot是用C编写的命令行库,所以它不会在ruby中运行,您需要做的事情如下
result = `you scrot command`
#use result how you would likehttps://stackoverflow.com/questions/23361305
复制相似问题