我的 JAVA 代码输出如下所示。
Name="John"
Age="23"
Gender="Male"
Phone="+123 456 789"
..
..
我想在 shell 脚本中使用上面的 java 代码输出作为变量,而不编写任何中间文件。我正在尝试在 Myscript.sh 中使用以下命令获取变量
JAVA_OUTPUT=`java -cp ojdbc6.jar:. javaClassFile args`
echo $JAVA_OUTPUT
但是我无法将 java 输出设置为 shell 脚本中的变量
最佳答案
您可以使用关联数组来存储所有键/值对:
declare -A vars
while IFS='=' read -r key value; do
vars[$key]=$value;
done < <(java -cp ojdbc6.jar:. javaClassFile args)
echo "${vars[Name]} is ${vars[Age]}"
# Etc.
或者,如果您更改 java 程序以在带有空格(例如电话号码一)的值周围添加引号,例如 source <(java -cp ojdbc6.jar:. javaClassFile args)
可能适用于创建多个变量。
关于java - 在 shell 脚本中使用 JAVA 多行输出作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61370672/