У меня есть два сценария оболочки Caller и getGlobalParameters. В сценарии getGlobalParameters определена функция, которая вызывает класс Java и использует значения, возвращаемые классом Java, для установки переменных среды. После завершения вызова getGlobalParameters вызывающая сторона пытается использовать переменные среды, установленные в getGlobalParameters. Проблема, с которой я сталкиваюсь, заключается в том, что переменные среды, установленные getGlobalParameters, недоступны для вызывающего абонента. Ниже приведен фрагмент кода Caller и getGlobalParameters.
Caller.sh
GETGLOBALPARAMETERS=getGlobalParameters.sh
jobName=ABC
JOBENV=TEST
eval '$GETGLOBALPARAMETERS $jobName $JOBENV'
printenv
#In the printenv statement above I am not seeing the environment variables set by the getGlobalParameters
getGlobalParameters.sh -
#Sample OUTPUT value a^1$b^2
IFS='$' read -r -a array <<< "$OUTPUT"
declare -A configkeys
for element in "${array[@]}"
do
IFS='^' read -r -a temparray <<< "$element"
configkeys[${temparray[0]}]=${temparray[1]}
done
for key in "${!configkeys[@]}"; do
export "${key} = "${configkeys[$key]}""
done
printenv
#In the above printenv I am able to see the environment variables.
Может ли кто-нибудь взглянуть и сообщить мне, что мне не хватает. Уже потратил день на выяснение проблемы, но не смог найти способ исправить это.
getGlobalParameters.sh -
. getGlobalParameters.sh
This tool allows you to correct mistakes, rephrase sentences and improve your writing. The green highlight on the right indicates a change.
eval '$GETGLOBALPARAMETERS $jobName $JOBENV'
Click on a word to see suggestions or rewrite the whole sentence.
. $GETGLOBALPARAMETERS $jobName $JOBENV