繁体   English   中英

使用 JAVA 多行输出作为 shell 脚本中的变量

[英]Use JAVA multi-line outputs as variables within shell script

我的 JAVA 代码 output 如下所示。

    Name="John"
    Age="23"
    Gender="Male"
    Phone="+123 456 789"
    ..
    ..

我想使用上面的 java 代码 output 作为 shell 脚本中的变量,而不编写任何中间文件。 我正在尝试在 Myscript.sh 中使用以下命令获取变量

JAVA_OUTPUT=`java -cp ojdbc6.jar:. javaClassFile args`
echo $JAVA_OUTPUT

但我无法将 java output 设置为 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)可能适用于创建多个变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM