开发者

Why does calling a Bash command from Ruby throw an error?

I'm attempting to execute the following bash command on some images using Ruby:

class Pingcrush
  def initialize
    Dir.foreach('drawable') do |item|
      next if item == '.' or item == '..'
      # do work on real items
      if item.end_with?(".png") then
        %x["wine pngcrush.exe -brute drawable/#{item} new/#{item}"]
      end
    end
  end
end
Pingcrush.new

The directory I am in is the parent to both drawable and new, however, when when I attempt to run the script I always get 开发者_C百科the same error:

sh: wine pngcrush.exe -brute drawable/feed_cl.png new/feed_cl.png: not found

Why is this happening? I tried switching around the path I'm calling in Ruby and can't seem to make this work.


Its executing your shell but can't find wine. Try setting the full path to where wine is installed.

which wine


Don't put quotes around your command.


You have checked that wine pngcrush.exe -brute drawable/feed_cl.png new/feed_cl.png works when you type it from the command line, haven't you?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜