/usr/bin/env -0 для систем, отличных от Linux

Вы можете запустить команду xdpyinfo. Он дает информацию о вашем текущем сервере X11 (и дисплее ). Это не удастся, если у вас нет (, например. в чистом сеттинге Wayland ).

2
28.02.2020, 12:09
1 ответ

Интересно, как вы планируете восстановить эту захваченную среду, поскольку ни одна оболочка, кроме 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
3
28.04.2021, 23:21

Теги

Похожие вопросы