env --null 소개

env --null 소개

나는 시도했다환경 변수 추출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/--null2009년 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.

관련 정보