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全体が正しく渡されることを望みます。