Skip to content

Instantly share code, notes, and snippets.

@dracorp
Created November 25, 2014 23:57
Show Gist options
  • Save dracorp/88f4e14354d13a80caf3 to your computer and use it in GitHub Desktop.
Save dracorp/88f4e14354d13a80caf3 to your computer and use it in GitHub Desktop.
Bash reexport
#!/bin/bash -
declare -A before
while read linia; do
key=${linia%=*}
value=${linia#*=}
before+=(["$key"]="$value")
done < <(export -p | cut -d' ' -f3-)
. original.script.sh
declare -A after
while read linia; do
key=${linia%=*}
value=${linia#*=}
after+=(["$key"]="$value")
done < <(export -p | cut -d' ' -f3-)
declare -A difference
for k1 in "${!after[@]}"; do
skip=
for k2 in "${!before[@]}"; do
if [[ "${before[$k2]}" == "${after[$k1]}" ]]; then
skip=1;
break;
fi
done
[[ -n "$skip" ]] || difference+=([$k1]=${after[$k1]})
done
set -x
for k3 in ${!difference[@]}; do
export $k3="${difference[$k3]}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment