![env --null 소개](https://linux55.com/image/60621/env%20--null%20%EC%86%8C%EA%B0%9C.png)
나는 시도했다환경 변수 추출Python 프로세스 내에서는 env --null
개행 문자가 포함된 환경 변수에도 작동합니다.
하지만 일부 컴퓨터에서는 오류가 발생합니다.
> env -0
env: invalid option -- '0'
> env --null
env: unrecognized option '--null'
> env --version
env (GNU coreutils) 6.12
Copyright (C) 2008 Free Software Foundation, Inc.
이 주장은 어떤 버전에서 도입되었나요? 환경을 추출하는 다른 명령이 있습니까?
답변1
옵션은 -0/--null
2009년 10월 28일에 처음 소개되었으며 GNU coreutils 버전 8.1과 함께 출시되었습니다.
coreutils가 너무 오래된 경우 업그레이드해야 합니다. 또는 다음을 사용할 수 있습니다 perl
.
perl -e '$ENV{_}="/usr/bin/env"; print "$_ => $ENV{$_}\0" for keys %ENV'
@Stéphane Chazelas가 자신의 의견에서 지적했듯이 위의 방법에는 =
포함되지 않은 환경 문자열, 중복 환경 변수 또는 null 이름이 있는 환경 변수가 포함되지 않습니다.
Linux를 사용하는 경우 다음을 사용할 수 있습니다(@Stéphane Chazelas에게 다시 한 번 감사드립니다).
cat /proc/self/environ
답변2
어쨌든 Python을 사용하는 경우 다음을 사용할 수 있습니다.
import os
import sys
for k in sorted(os.environ):
if k == '_':
v = '/usr/bin/env'
else:
v = os.environ[k]
sys.stdout.write("{}={}\0".format(k, v))
와 비교하여 매우 유사한 출력을 얻습니다 env --null
.