Ich habe etwas Code, den ich von Perl in Python übersetzt habe, aber ich habe eine Zeit lang versucht, diesen letzten Teil herauszufinden.Von Perl zu 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");
Ich verstehe zwar, (ein bisschen), was dies tut, kann ich nicht scheinen, um herauszufinden, wie dies in Python zu tun. Jede Hilfe würde sehr geschätzt werden.
'os.system ("bash -c" + bashcode)'? –
Die Verwendung von Perl, nur um einen Dump der Umgebung zu erhalten, erscheint zweifelhaft, es sei denn, Sie benötigen es im Perl-Format, das von 'data :: dumper' generiert wurde. Nur 'env' in der Shell sollte Ihnen die gewünschte Ausgabe geben. Ob Sie 'bash -c" code "von Perl oder Python aufrufen, sollte unerheblich sein; Die einzige Frage ist wirklich, warum Sie * entweder * verwenden, wenn dies eindeutig eine Bash-Aufgabe ist. Wenn die Aufgabe darin besteht, diese Variablen in Python zu importieren, sehen Sie sich vielleicht [shlex] (https://docs.python.org/3/library/shlex.html) an. – tripleee
Der vorhandene Code verwendet ein Bash-Skript, um zwei andere Skripts aufzurufen, um einige Umgebungsvariablen festzulegen. Anschließend wird diese geänderte Umgebung durch Dumping im Perl-Format aus dem Bash-Skript wieder an das ursprüngliche Perl-Skript übergeben. Sie müssen diesen Teil ersetzen (vielleicht nur mit 'env' als dritte Zeile des Bash-Skripts) und einen Pythony-Weg verwenden, um' bash -c ... 'auszuführen und die Ausgabe zu erfassen und zu parsen. – ysth