0
我想從一個ruby腳本(Ruby 1.9.3)中運行一個名爲pdfgrep
的程序,該腳本從Git Bash MINGW32)在Windows 7上運行。對pdfgrep
的調用在反引號內,我想要使用ruby方法得到結果並清理它。
觀看this answer和this answer到a related SO question之後,我想我應該ENV['PATH']
變量從Windows風格的路徑是在我的shell默認轉換爲UNIX路徑。
(第3行)所以我用一個簡單的puts
測試了$LOAD_PATH
的內容,這似乎是工作。
script.rb
#!/usr/bin/env ruby
ENV['PATH'].split('\\').join(File::SEPARATOR).split(';').inject($LOAD_PATH) {|lp,v| lp << v }
# The intention is to replace puts with a variable assignment
puts `pdfgrep -i "(issued|Total)" *.pdf`
錯誤運行,這是當我得到:
./script.rb:6:in ``': No such file or directory - pdfgrep -i "(issued|Total)" *.pdf (Errno::ENOENT)
當我提供完整的路徑 - c:/Users/cjross/bin/pdfgrep -i [etc...]
- 沒有錯誤消息。它仍然不會輸出我期望的內容,但它不會引發錯誤。
基本上我很樂意能夠從我的shell的$PATH
ruby中調用任何程序。任何意見,將不勝感激。
編輯 謝謝@konsolebox糾正我不正確的引用。不幸的是仍然有路徑問題。
不幸的是,仍然引發了'沒有這樣的文件或directory'錯誤,但是你我的報價修訂工作至少讓我得到了想要的輸出(儘管有完整的路徑到'pdfgrep')。謝謝!我將把它列入我的問題。 – cjross