Использование многострочных JAVA выходных данных в качестве переменных в сценарии оболочки - PullRequest
0 голосов
/ 22 апреля 2020

Мой JAVA вывод кода выглядит следующим образом.

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

Я хочу использовать приведенный выше java вывод кода в качестве переменных внутри сценария оболочки без записи какого-либо промежуточного файла. Я пытаюсь получить переменные, используя команду ниже в Myscript. sh

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

Но я не могу установить вывод java как переменные в shell-script

1 Ответ

2 голосов
/ 22 апреля 2020

Вы можете использовать ассоциативный массив для хранения всех пар ключ / значение:

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) может работать для создания нескольких переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...