0

URL である引数を受け取るシェル コマンドを Ruby で呼び出す必要があります。これが私がやっている方法です:

output = `casperjs myscript.js #{url}`

ただし、URL に「(」や「|」などの奇妙なパラメーターが含まれていると、シェルからエラーが発生します。たとえば、次のようになります。

https://www.theshadestore.com/window-treatments/product/solar-shade?preselected_collections[]=3-percent-basics&preselected_collections[]=5-percent-basics&preselected_collections[]=10-percent-basics' 'を渡す場合

次のエラーが表示されます。

sh: 1: preselected_collections[]=10-percent-basics: not found
sh: 1: preselected_collections[]=5-percent-basics: not found

そして、私が渡すとき: ' http://www.coastal.com/nike-8206-200-brown?rsView=1&ga=F|M|K'

私は得る:

sh: 1: M: not found
sh: 1: K: not found

どうすればそれを回避できますか? 実際にURL全体が正しく渡されることを望みます。

4

2 に答える 2

1

バッククォートは含まれている文字列を/bin/shで実行すると思うので、おそらく次のようにします。

output = `casperjs myscript.js '#{url}'`
于 2013-10-17T18:51:39.857 に答える