
私は試した環境変数の抽出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
。