我正在尝试运行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 纠正我不正确的引用。不幸的是仍然有路径问题。