gpt4 book ai didi

java - 将带空格的字符串从 shell 传递到 java

转载 作者:行者123 更新时间:2023-11-30 07:00:40 26 4
gpt4 key购买 nike

我正在做一项简单的工作,将我的 java 参数从 shell 传递到 java,并且其中一个参数恰好有空格。

./test.ksh -test param1 param2 "\"param3 with spaces\""

test.ksh 中的代码

if [ "$1" = "-test" ]
then
echo "Test"
SCRIPT_ARG="${*}"
echo "${SCRIPT_ARG}"
fi

java -jar test.jar ${SCRIPT_ARG}

但是在java代码中,第三个参数被读取并打印为

"param3

看起来很简单,但这里缺乏想法

最佳答案

参数是一个字符串列表,但您可以将它们连接成一个字符串,然后按空格重新拆分。

相反,不要连接它们,而是将它们作为字符串列表进行处理:

#!/usr/bin/ksh

if [ "$1" = "-test" ]
then
echo "Test"
script_arg=( "${@}" )
for i in "${script_arg[@]}"
do
echo "One of the arguments is: $i"
done
fi

java -jar test.jar "${script_arg[@]}"

然后您应该运行它:

./test.ksh -test param1 param2 "param3 with spaces"

并且不要尝试嵌入更多引号。

关于java - 将带空格的字符串从 shell 传递到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984714/

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