linux bash export vars between shell instances
export_global_var () {
filename=/tmp/env
test -f $filename || touch $filename
{
flock 0 #prevents isssues with multi thread process
#set -x #enables verbose/debug
. /tmp/env
[ $# -eq 0 ] || export "$@"
echo "$@"
#echo "$@" >> /tmp/env #export into file
KEY=`echo "$@" | awk '{split($0,a,"="); print a[1]}'`
#sed '/"$KEY"/c > "$@"' $filename
VAR_IN_FILE=`cat $filename | grep "$KEY"`
(grep -q "$KEY" $filename || echo "$@" >> $filename) && grep -rl "$KEY" $filename | xargs sed -i "s/$VAR_IN_FILE/$@/g"
} < $filename
source $filename #import into mem
}
import_global_var () {
filename=/tmp/env
echo "importing global variables..."
source $filename #import into mem
}
USAGE:
export_global_var DEPLOY_BOOLEAN=0 EXEC=1 #export var gobally
import_global_var #import vars from global vars