Em zsh
ou yash
.
export -p myvariable myvariable2
funcionaria como seria de esperar.
Caso contrário, em bash
, você ainda pode fazer:
for var in myvariable myvariable2; do
printf 'export %s=%q\n' "$var" "${!var}"
done
POSIXly, você pode fazer as citações manualmente usando awk
:
awk -v q="'" '
function escape(v) {
gsub(q, q "\" q q, v)
return q v q
}
BEGIN {
for (i = 1; i < ARGC; i++)
print "export " ARGV[i] "=" escape(ENVIRON[ARGV[i]])
}' myvariable myvariable2
Por diversão, uma solução hacky que funciona em alguns shells ( bash
, zsh
, mksh
, ksh93
, não yash
nem dash
):
(PS4=; set -x; export "myvariable=$myvariable") 2>&1