如何在用于程序参数的bash变量中逃脱星号

问题描述 投票:0回答:1

[我有一个变量,该变量的java命令具有程序参数,并且类路径包含目录中的所有jar,但是我无法正确转义星号,因此请继续获取main未找到类错误。

这里有几个例子。 lib /包含我所有的jar。 test.Main包含main()类。

内联按预期工作:

java -classpath lib/* test.Main

但是,所有这些尝试均失败:

# 1)
PRARGS="-classpath lib/*" test.Main
java $PARGS

# 2)
PRARGS="-classpath lib/*" test.Main
java "$PARGS"

# 3)
PRARGS="-classpath lib/\*" test.Main
java $PARGS

# 4)
PRARGS="-classpath lib/\*" test.Main
java "$PARGS"
bash escaping glob
1个回答
0
投票

您不需要使星号转义,而是禁用路径扩展。

尝试一下:

PRARGS="-classpath lib/* test.Main"
set -o noglob
java $PRARGS
set +o noglob
© www.soinside.com 2019 - 2024. All rights reserved.