2016-10-04 10 views
0

は、Open3のpopen3関数を使用してruby上でシステムコマンドを実行します。Ruby - Open3 popen3関数を墨塗り

pdf2htmlEX --zoom 1.3 ~/test.pdf 

ファイル名がparamsに渡されるので、私はそれをサニタイズしたいと思います。実行した場合、例えば:それは

Open3.popen3("pdf2htmlEX --zoom 1.3", "~/test.pdf") do |stdin, stdout, stderr, wait_thr| 

end 

Open3.popen3("pdf2htmlEX --zoom 1.3 ~/test.pdf") do |stdin, stdout, stderr, wait_thr| 

end 

コードが正常に動作しますが、私は(関数は、それがエスケープされるだろうという方法を提案しているように)引数を分離しようとすると、のようなもの私にエラーを与える:そのようなファイルやディレクトリはありません - pdf2htmlEX --zoom 1.3

私はそれをどのように修正するのですか?ありがとう!

答えて

1

引数はコマンドとは別にする必要があります。エラーを回避

Open3.popen3("pdf2htmlEX", "--zoom", "1.3", "~/test.pdf")...

+0

おかげで、試してみてください! =) –

+0

しかし、私は認識できないオプション "--zoom 1.3"のエラーを受けました。 「I/O Error:ファイル '〜/ test.pdf'を開くことができませんでした:ファイルやディレクトリはありません」というファイルもあります。文字列)。何か案は? –

+0

絶対パスで作業しましたが、まだズームエラーが発生しています。ズームパラメータ –

関連する問題