Bash剥离引号 - 如何保留引号

时间:2014-11-10 13:47:17

标签: java bash shell env

我需要将cmd参数传递给我的bash脚本,但它会继续删除引号。

以下是一个例子。在我的脚本中,我添加了一些额外的处理,我在处理命令之前将数据添加到第一个变量

$> ./test.sh -t some.comman -extraswitch "some addtional info"

该脚本使用Java进行一些处理,但是"一些额外的信息"缺少引号,因此无法执行此脚本的Java部分。如何保留命令行中的引号,以便我可以在脚本中执行我的Java命令?

脚本中的Java命令

java $JAVA_OPTS "$@"

输出

java lib -someoption -anotheroption -javalibswitch some additional info 

预期输出

java lib -someoption -anotheroption -javalibswitch "some additional info"

2 个答案:

答案 0 :(得分:3)

当你想引用带引号的字符串时,我通常使用单引号来避免shell插值。

./test.sh -t some.comman -extraswitch '"some addtional info"'

答案 1 :(得分:-1)

您可以传递这样的参数

./test.sh -t some.comman -extraswitch \"some addtional info\"