В zsh
или yash
.
export -p myvariable myvariable2
будет работать, как и следовало ожидать.
В противном случае в bash
вы все еще можете:
for var in myvariable myvariable2; do
printf 'export %s=%q\n' "$var" "${!var}"
done
В POSIX-кодировке вы можете цитировать вручную, используя 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
Для развлечения, хакерское решение, которое работает в некоторых оболочках ( bash
, zsh
, mksh
, ksh93
, но не yash
или dash
):
(PS4=; set -x; export "myvariable=$myvariable") 2>&1
Не используйте PEM. Я не понимаю, почему ты хочешь это сделать. Возможно, расширить свой вопрос с некоторой логикой?
Вы должны сделать: