私はperlからPythonに翻訳したコードをいくつか持っていますが、この最後の部分を理解しようとしています。私はこれが何をしているか(ビット)を理解しながらperlからpython
my $bashcode=<<'__bash__';
. /opt/qip/etc/qiprc;
. /opt/sybase/sybase.sh
perl -mdata::dumper -e 'print dumper \%env';
__bash__
my $var1;
eval qx(bash -c "$bashcode");
、私はPythonでこれを実行する方法を見つけるように見えることはできません。どんな助けでも大歓迎です。
'os.system( "bashの-c" + bashcodeを)'を使用、Pythonでホスト環境にアクセスするには、小文字
env
で環境にアクセスしますか? –
'data :: dumper'によって生成されたPerlishフォーマットで特別に必要としない限り、環境のダンプを取得するためにPerlを使うだけでは不思議そうです。シェルの 'env'だけがあなたに必要な出力を与えるはずです。 PerlやPythonから 'bash -c 'コードを呼び出すかどうかは重要ではありません。唯一の疑問は、なぜこれが明らかにBashタスクであるかを*使用している理由です。タスクがこれらの変数をPythonにインポートするのであれば、おそらく['shlex'](https://docs.python.org/3/library/shlex.html)を見てください。 – tripleee
既存のコードでは、bashスクリプトを使用していくつかの環境変数を設定し、変更された環境を元のperlスクリプトに戻すために、bashスクリプトからperl形式でダンプします。その部分を(おそらく 'bashスクリプトの3行目の' env'で)置き換え、 'pythonの方法で' bash -c ... 'を実行し、出力をキャプチャして解析する必要があります。 – ysth