我试图将许多jvm参数传递给一个变量并将其导出并调用其他脚本,但参数中的空格和双引号打败了我。 (" / 05 abcdef")
我的代码:
#!/bin/bash
NORMAL_VARIABLE=-DNORMAL.NormalText=normal124
PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"'
SUM="$NORMAL_VARIABLE $PROBLEMATIC_VARIABLE"
export SUM
目标脚本:
java $SUM -jar "ApacheJMeter.jar" "$@"
调试模式下的实际输出:
+ NORMAL_VARIABLE=-DNORMAL.NormalText=normal124
+ PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"'
+ SUM='-DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef"'
+ export SUM
+ java -DNORMAL.NormalText=normal124 '-DPROBLEM.ProblematicText="/05' 'abcdef"' -jar ApacheJMeter.jar
Error: Could not find or load main class abcdef"
任何人都知道如何解决它?
我想得到:
java -DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef" -jar ApacheJMeter.jar
答案 0 :(得分:2)
如果您正在使用bash,则可以使用数组。
#!/bin/bash
NORMAL_VARIABLE=-DNORMAL.NormalText=normal124
PROBLEMATIC_VARIABLE=-DPROBLEM.ProblematicText="/05 abcdef"
SUM=($NORMAL_VARIABLE "$PROBLEMATIC_VARIABLE")
然后
java "${SUM[@]}" -jar "ApacheJMeter.jar" "$@"