gpt4 book ai didi

linux - Bash 导出并在脚本中使用带引号和空格的变量

转载 作者:太空狗 更新时间:2023-10-29 12:10:31 25 4
gpt4 key购买 nike

我试图将许多 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com