I'm not sure what is doing this for loop in Bash that is using this kind of parameter expansions var_key="${env%%=*}"
for env in "${envvars[@]}"; do
var_key="${env%%=*}"
var_value="${env#*=}"
if [[ -z ${!var_key} ]]; then
echo "export ${env}" >> "${FILE}"
echo "export ${var_key}=\"${var_value}\"" >> "${FILE}"
fi
done
Any idea of what is being doing this for loop.
CodePudding user response:
"${env%%=*}" is one possible form of a "parameter expansion". It removes the longest match of the pattern =* from the value of the variable $env.
# is similar but operates on the beginning of the value.
E.g.
env=x=3=6
echo ${env%%=*} # x
echo ${env%=*} # x=3
echo ${env#*=}) # 3=6
echo ${env##*=}) # 6
