Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ENV[';PATH';]扩充ruby$LOAD_PATH仍然无法找到backtick命令_Ruby_Bash_Shell_Path_Git Bash - Fatal编程技术网

使用ENV[';PATH';]扩充ruby$LOAD_PATH仍然无法找到backtick命令

使用ENV[';PATH';]扩充ruby$LOAD_PATH仍然无法找到backtick命令,ruby,bash,shell,path,git-bash,Ruby,Bash,Shell,Path,Git Bash,我试图在ruby脚本(ruby 1.9.3)中运行一个名为pdfgrep的程序,该脚本是在Windows7上的GitBash(MINGW32)shell中运行的。对pdfgrep的调用在backticks中,我希望得到结果并使用ruby方法进行清理 查看并转换为之后,我想应该将ENV['PATH']变量从我的shell中默认的Windows样式路径转换为unix路径 (第3行)因此,我用一个简单的puts测试了$LOAD\u PATH的内容,这似乎起到了作用 script.rb #!/usr/b

我试图在ruby脚本(ruby 1.9.3)中运行一个名为
pdfgrep
的程序,该脚本是在Windows7上的GitBash(MINGW32)shell中运行的。对
pdfgrep
的调用在backticks中,我希望得到结果并使用ruby方法进行清理

查看并转换为之后,我想应该将
ENV['PATH']
变量从我的shell中默认的Windows样式路径转换为unix路径

(第3行)因此,我用一个简单的
puts
测试了
$LOAD\u 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` 
当我提供完整路径-
c:/Users/cjross/bin/pdfgrep-I[etc..]
时,没有错误消息。它仍然没有输出我所期望的内容,但它不会引发错误

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

编辑 感谢@konsolebox更正我的错误报价。不幸的是,仍然存在路径问题

puts `pdfgrep -i '(issued|Total)' "*.pdf"` 
我认为应该像你一样工作

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

不幸的是,它仍然引发了关于
没有这样的文件或目录的错误,但是您对我的引号的修订至少允许我获得预期的输出(尽管带有
pdfgrep
的完整路径)。谢谢我将把它包括在我的问题中。
puts `pdfgrep -i "(issued|Total)" *.pdf`