我需要在 Ruby 中调用一个 shell 命令,它接收一个 URL 参数。这是我的做法:
output = `casperjs myscript.js #{url}`
但是,如果 URL 包含奇怪的参数,例如 '(' 或 '|' 我会从 shell 收到错误。例如:
当通过' 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 都正确传递。