Вы можете запустить команду xdpyinfo
. Он дает информацию о вашем текущем сервере X11 (и дисплее ). Это не удастся, если у вас нет (, например. в чистом сеттинге Wayland ).
Интересно, как вы планируете восстановить эту захваченную среду, поскольку ни одна оболочка, кроме zsh, не поддерживает нулевые байты в своих переменных.
В любом случае, вы можете использовать awk
для экранирования \
как \\
и новой строки как \n
, и по-прежнему использовать новую строку для разделения записей name=val
:
awk 'BEGIN{
for(e in ENVIRON){
v = e "=" ENVIRON[e];
gsub(/\\/, "&&", v); gsub(/\n/,"\\n",v); print v
}
}'
fzd$ env - $'foo\\bar\nquux=foo\\bar\nquux' lol=cat printenv
lol=cat
foo\bar
quux=foo\bar
quux
fzd$ env - $'foo\\bar\nquux=foo\\bar\nquux' lol=cat awk 'BEGIN{
for(e in ENVIRON){
v = e "=" ENVIRON[e];
gsub(/\\/, "&&", v); gsub(/\n/,"\\n",v); print v
}
}'
foo\\bar\nquux=foo\\bar\nquux
lol=cat