用ENV ['PATH']增加ruby $ LOAD_PATH仍然无法找到反引号命令

时间:2013-08-29 02:29:35

标签: ruby bash shell path git-bash

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

在查看this answerthis answera related SO question后,我想我应该将pdfgrep变量转换为Windows样式路径中的unix路径,这是我的shell中的默认路径

(第3行)所以我用简单的ENV['PATH']测试了$LOAD_PATH的内容,这似乎有效。

script.rb

puts

运行时遇到的错误是:

#!/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) 时 - 没有错误消息。它仍然没有输出我期望的但它不会引起错误。

基本上我希望能够从ruby中调用我的shell c:/Users/cjross/bin/pdfgrep -i [etc...]中的任何程序。任何建议将不胜感激。

修改 谢谢@konsolebox纠正我的错误引用。遗憾的是仍有路径问题。

1 个答案:

答案 0 :(得分:0)

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

我认为应该像

那样工作
puts `pdfgrep -i "(issued|Total)" *.pdf`