如何在 ruby 脚本调用的命令行中嵌入 json?

How to embed json in a command line called in a ruby script?

我正在尝试 运行 在 ruby 脚本中执行以下命令(有效)

knife bootstrap windows winrm 'mynode' -N 'mynode' -x 'Administrator' -P 'password' -p 5985 -j '{"db-mssql" : {"full_install" : true, "cluster_install" : true}}'

我试过这个...

cmd=%Q{knife bootstrap windows winrm 'mynode' -N 'mynode' \
         -x 'Administrator' -P 'password' -p 5985 \
         "echo '{\"db-mssql\" : { \"full_install\" : true, \"cluster_install\" : false}}' | -j /dev/stdin"}
puts (cmd)
system(cmd)

...还有这个...

cmd=%Q{knife bootstrap windows winrm 'mynode' -N 'mynode' \
         -x 'Administrator' -P 'password' -p 5985 \
         -j '{\"db-mssql\" : { \"full_install\" : true, \"cluster_install\" : false}}'}
puts (cmd)
system(cmd)

...导致解释器出现 JSON 解析错误。正确的语法是什么?

只需使用 ruby 哈希,然后对其调用 .to_json。

确保 'require json' 以获得 .to_json 功能。