Java 引用字符串变量

Java Quoting string variables

我希望打印出来

ansible-playbook delete.yml --extra-vars "host=5.955.595 user=root pass=anotherpw vm=myVm"

这是我的代码。但是好像不行。

    String ip = "5.595.595";
    String usr = "root";
    String pw = "anotherpw";
    String vmName = "myVm";

    String p = "ansible-playbook delete.yml --extra-vars \"host\"= '"+ip+"' \"user\"='"+usr+"' \"pass\"= '"+pw+"'  \"vm\"= '"+vmName+"' " ";
    System.out.println(p);

你从字符串开始。

ansible-playbook delete.yml --extra-vars "host=5.955.595 user=root pass=anotherpw vm=myVm"

然后你转义所有特殊字符。在这种情况下,这只是 2 个双引号。

ansible-playbook delete.yml --extra-vars \"host=5.955.595 user=root pass=anotherpw vm=myVm\"

然后用双引号将其括起来,使其成为 Java 字符串文字。

"ansible-playbook delete.yml --extra-vars \"host=5.955.595 user=root pass=anotherpw vm=myVm\""

然后删除硬编码值并用具有动态值的变量的字符串连接替换它们。

"ansible-playbook delete.yml --extra-vars \"host=" + ip + " user=" + usr + " pass=" + pw + " vm=" + vmName + "\""

然后你把它赋给一个变量。

String p = "ansible-playbook delete.yml --extra-vars \"host=" + ip + " user=" + usr + " pass=" + pw + " vm=" + vmName + "\"";

然后将其换行,使其更具可读性。

String p = "ansible-playbook delete.yml --extra-vars \"host=" + ip +
                                                     " user=" + usr +
                                                     " pass=" + pw +
                                                       " vm=" + vmName + "\"";

看到它是多么容易,如果你一次只做一步?