0

我正在尝试运行pdfgrep从 ruby​​ 脚本 (Ruby 1.9.3) 中调用的程序,该程序从 Windows 7 上的 Git Bash (MINGW32) shell 运行。调用pdfgrep在反引号内,我想得到结果并使用红宝石方法清理它。

在查看此答案相关 SO question 的答案后,我想我应该将变量从 Windows 样式路径转换为 ​​unix 路径,这是我的 shell 中的默认路径。ENV['PATH']

(第 3 行)所以我$LOAD_PATH用一个简单的 测试了内容puts,这似乎有效。

脚本.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...]没有错误消息。它仍然没有输出我所期望的,但它不会引发错误。

基本上我希望能够$PATH从 ruby​​ 调用我的 shell 中的任何程序。任何意见,将不胜感激。

编辑 感谢@konsolebox 纠正我不正确的引用。不幸的是仍然有路径问题。

4

1 回答 1

0
puts `pdfgrep -i '(issued|Total)' "*.pdf"` 

我认为应该作为

puts `pdfgrep -i "(issued|Total)" *.pdf`
于 2013-08-29T06:10:56.900 回答