Export a variable with dynamically created name in bash shell script
linux, shell
Solution
Export exports variables into the current shell context. By running your script with bash it gets set in that shell's context. You need to source the file to have it run in the current shell context.
source <filename>.sh
Just to show the difference between a sub-shell and source:
[nedwidek@yule ~]# bash test.sh
METASTORE_JDBC_DRIVER_8422
[nedwidek@yule ~]# env |grep META
[nedwidek@yule ~]# source test.sh
METASTORE_JDBC_DRIVER_8143
[nedwidek@yule ~]# env |grep META
METASTORE_JDBC_DRIVER_8143=1
Problem
I want to create a variable with its name partly dynamic and export it from my bash shell script. I have been trying to do it the following way. No success though. Please tell me where I am wrong. ``` #!/bin/bash CURRENT_PROCESS_ID=$$ var=METASTORE_JDBC_DRIVER_$CURRENT_PROCESS_ID echo $var export $var='1' ``` execution command ``` bash <filename>.sh ``` I am hoping the script would create an environmental variable like `METASTORE_JDBC_DRIVER_8769` and I should be able to use that out of the script but when I do `echo $METASTORE_JDBC_DRIVER_8769` outside the script, doesn't give me anything. Any suggestions/ideas are welcomed.