gpt4 book ai didi

java - 将复杂的命令放入变量中并作为参数传递给另一个脚本以供稍后运行

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:41 26 4
gpt4 key购买 nike

我有一个运行java二进制文件的脚本,并且想要传递复杂的命令,该命令将在发生OutOfMemoryException时执行。问题比较普遍,与 OOME 无关。如何将命令放入变量中并将其传递给稍后将执行的其他脚本?这是我试图执行的代码。我尝试了不同的逃避方式,但没有任何结果。在执行过程中,无论我如何转义它,shell都会尝试在空格上分割JAVA_OPTS。 #!/bin/sh

JAVA_OPTS="-Xmx10m"
JAVA_OPTS="$JAVA_OPTS \"-XX:OnOutOfMemoryError=echo 'Ups'\""

set -x
java $JAVA_OPTS TestMemory

我发现了这个:BashFAQ 050 ,但涵盖的案例均不适用于我。我无法将此代码放入函数中,因为 JVM 进程将无法访问它。当我将整个命令作为一行时,它运行良好,但我的用例有点不同,我无法修改最后一行。 JAVA_OPTS 应该在其他地方构造,然后按照示例代码所示使用。

最佳答案

唯一明智的方法是使用 bash 数组(或 ksh/zsh)

JAVA_OPTS=( "-Xmx10m" )
JAVA_OPTS+=( "-XX:OnOutOfMemoryError=echo 'Ups'" )

set -x
java "${JAVA_OPTS[@]}" TestMemory

关于java - 将复杂的命令放入变量中并作为参数传递给另一个脚本以供稍后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721104/

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