我试图将许多 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" "$@"
Debug模式下的实际输出:
+ 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
最佳答案
如果您使用 bash,则可以使用数组。
#!/bin/bash
NORMAL_VARIABLE=-DNORMAL.NormalText=normal124
PROBLEMATIC_VARIABLE=-DPROBLEM.ProblematicText="/05 abcdef"
SUM=($NORMAL_VARIABLE "$PROBLEMATIC_VARIABLE")
然后
java "${SUM[@]}" -jar "ApacheJMeter.jar" "$@"
关于linux - Bash 导出并在脚本中使用带引号和空格的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46601021/